注册 登录
编程论坛 C语言论坛

新手求问,为什么这个结构体的函数可以有这么多return

oped02 发布于 2022-10-26 21:04, 1202 次点击
struct mankind{
    char name[10];
    int yy,mm,dd;
};


bool LessEqu(mankind a , mankind b){
    if(a.yy != b.yy) return a.yy <= b.yy;
    else if (a.mm != b.mm) return a.mm <= b.mm;
    else (a.dd != b.dd) return a.dd <= b.dd;
}
这段代码意思是如果a的日期小于等于b,则返回true,虽然我知道这是对的,但不明白为什么这样写
想请教一下各位
4 回复
#2
oped022022-10-26 21:12
bool LessEqu(mankind a , mankind b){
    if(a.yy != b.yy) return a.yy <= b.yy;
    else if (a.mm != b.mm) return a.mm <= b.mm;
    else  return a.dd <= b.dd;
}
不好意思,代码应该改成这样
#3
apull2022-10-27 12:17
bool LessEqu(mankind a , mankind b){
    if(a.yy != b.yy) return a.yy <= b.yy;  年不一样直接比较年
    else if (a.mm != b.mm) return a.mm <= b.mm;  年一样,月不一样比较月
    else  return a.dd <= b.dd; 上面2个一样比较日
}
#4
幻紫灵心2022-10-27 15:14
多个return是因为它们在不同的条件逻辑里面,最终执行的只有一个。
#5
TsXor2022-11-07 19:25
bool LessEqu(mankind a , mankind b)

是不是应该写成
bool LessEqu(struct mankind a , struct mankind b)
1