else if (age > 20 && ! (age > 60) && ! (age > 40 && ! (age > 60))) 这个代码有点晕,请高手指点一下

全部代码如下:教材上是这么写的。
  int age = 61;
  if (age > 60)
  {
  NSLog(@"老年人");
  }
  else if (age > 40 && !(age > 60))
  {
  NSLog(@"中年人");
  }
  else if (age > 20 && ! (age > 60) && ! (age > 40 && ! (age > 60)))
  {
  NSLog(@"青年人");
  }
其实最后一个 else if 写成 else if (age > 20 && !(age > 40))就可以了,这样我就明白了,为什么要写这么绕,指高手指点一下。

第1个回答  2015-10-19
age大于20 并且 age小于等于60 并且 age小于40大于60追问

这个代码执行下来是正确的,如果小于等于60后面又大于60,这不矛盾吗?不好意思,我是新手!

追答

其实最后的判断应该是有问题的,age大于60是老年人,age在40到60(包括60)之间是中年人,最后age在20到40(包括40)之间就是青年人了。
else if (age > 20 && ! (age > 40))

本回答被提问者和网友采纳
第2个回答  2015-10-20
哪本教材?
双重判断就已经够…………

估计作者就喜欢绕,可能数序超好,无处展现了,该作者要是写数据结构会怎样呢?

else if (age > 20 && ! (age > 60) && ! (age > 40 && ! (age > 60...
age大于20 并且 age小于等于60 并且 age小于40大于60

if else 条件语句的问题
45大于20 没有错啊 要么你就写 if(age > 20 && age <= 40){} else if (age > 40){}

逻辑关系:“(年龄)age≥18且age≤60”的C++语言表达式是什么_百度...
if((age>=18)&&(age<=60)){ 写入你想要执行的语句,比如打印一句话 cout<<"年龄在18到60岁之间!"<<endl;}

用java怎么编译 如果年龄大于20小于40就加10分否则减10分 这句话
int age;if(age>20&&age<40)score=score+10;else score=score-10;

Java 为什么 if (age>40&&!(age>20)) 第一个条件语句里的意
直接来个false更省事

满足年龄(变量为age)大于18小于60的c语言表达式是 。
age>18&&age<60。请及时采纳

满足年龄(变量为age)大于18小于60的c语言表达式是 。
void main(){ int age;if(age>18&&age<60){ } } \/\/望帮助到

用C++编写关于退休的程序
scanf("%d", &age);printf("请输入工龄: ");scanf("%d", &work);if (work >= 30) condition[0] = true;else if (age >= 65) condition[1] = true;else if (age > 60 && work >= 20) condition[2] = true;else if (age > 55 && work >= 25) condition[3] = true;if...

pythonif年龄在多少之间(2023年最新分享)
ifage=60:??print("老年")elifage=40:??print("中年")elifage=18:??print("青年")else:??print("未成年")注:第二个条件中可以直接写“age=40”;无需写成40=age60;因为当判断大盘第二个条件时,已经不满足第一个条件、即age!=60(age60),所以“60”部分可省略。第三个条件同理 条...

JS?if?else语句(条件判断语句)的详细使用
首先是 if 语句,它是最基础的条件判断语句。其语法结构如下:if(条件表达式){ \/\/ 执行的代码} 例如,我们可以通过 if 语句来判断一个人是否成年:var age = 20;if(age == 18) { alert("adult");} 上述代码中,当 age 的值等于 18 时,会弹出提示框显示 "adult"。接着是 if else 语句...

相似回答