if else 条件语句的问题

int age = 45;
if(age > 20) {
System.out.println("青年人");
}
else if (age > 40) {
System.out.println("中年人");
}
为什么会输出“青年人”?而不是中年人呢?

第1个回答  2016-05-13
45大于20 没有错啊
要么你就写 if(age > 20 && age <= 40){} else if (age > 40){}追问

这个我知道,但我就是不知道为什么会这么输出

追答

因为你第一个条件已经满足了啊
第一个条件满足了之后就不会再去执行else if里面的东西了
所以会输出第一个判断里的东西

第2个回答  2016-05-13
if(条件成立){
输出结果,并跳出语句!

}else if()这后面的不执行!

int age = 45;
if(age > 40) {
System.out.println("中年人");
}
else if (age > 20) {
System.out.println("青年人");
}

你反过来写就会输出中年人本回答被提问者和网友采纳

为什么我的代码里else if总是出错?
1、先说结论:说明你的else是独立的。2、出错原理:c语言里,有if不一定有else,但是有else一定要有相对应的if。3、解决方法:这种情况你往前推一下,所有的else能不能跟相应的if对应,很容易就找到了。4、良好习惯:虽然c语言不要求通过tab或者space来区分上下级关系,但是要养成良好书写习惯,比如说...

为什么这段if-else语句的条件没有生效?无论输入什么输出都是1_百度知 ...
语法错误!您也够懒,大括号都懒得加,if,else语句后如果只有一句执行语句,可以不加 { },多于一句必须要加 { },个何况您循环嵌套了!还是不要偷懒,改写就写吧.

为什么在if后面加了else还会出错?
1.if语句后面多了一个分号,这导致你的else语句和之前的if不配对,删除分号即可。另外如果你满足条件要执行多条语句请用{}扩起来,不然只会出错。2.void前面应该是个函数,少了函数结束符},需要加上。

c语言if...else语句问题
原因很简单,假设如果没有*p=*p\/10这句,那么*p的值永远不变,while循环永远执行下去。你自己单步调试一下,观察*p的值就能知道为什么了。

if else问题
if一般和else搭配的,if...else 语句可以嵌套使用,你那第一个句子有多少个if就有多少个else吧,你看看你那语句的后面有木有 if 条件 语句一 else 语句二 意思是如果是条件一,就执行语句一,如果不是就执行语句二 (看了别人的回答觉得学到了,if...if...是这个用法)...

C语言if……else if多分支问题
条件语句中出错了,你写的是else if(0<x<=10),其实只用写 else if (x <= 10)而且(0<x<=10)表示 0<x的结果,即逻辑判断结果 如果 x > 0 则为真,结果为1,否则为0,再与10比较, 不管是1,还是0,<=10始终为真。所以,只要不执行第一个if语句的内容,就都执行y = 3*x*...

c语言的一个简单if...else语句的问题
在条件分支语句中出现多重分支时,有时候就会很难理清头绪。缩进代码是很好的习惯,还可以以注释的方式来 标注对应分支。如 :if() \/\/if_1 { if() \/\/if_2 { \/\/put your code here }else \/\/end of if_2 { \/\/put your code here } }else \/\/end of if_1 { \/\/put your code here...

多个if语句和else if有什么区别?
if语句的执行方式意味着,如果针对同一个事件有多个if,可能会导致不必要的代码执行,因为每个if都会被尝试。然而,else if则提供了一种更加精准的控制,只有当前面的条件都不满足时,才会继续检查下一个条件,确保了逻辑的清晰性和效率。在php中,'elseif'和'else if'虽然写法不同,但功能完全一致。

求大神关于c语言if与else的的问题。。。程序很简单,就是不知道为什么有...
实际是这样的,循环执行了两次,第一次执行的是if语句,所以i自加了1,没有执行else 第二次没有执行if语句,直接执行的else语句,就会是这样的结果。至于你说没有达到执行else的条件,那只是你觉得,计算机在这方面不会出错的,这个问题的话,其实也很简单,你的if后面的判断条件,应该是t31与t30的...

c语言if else 语句中的问题
else (e>=14)-> 把(e>=14)去掉 另外, c在判断相等的时候是 e==11 双等号。这个编译的时候查不出来,但结果肯定就错了。

相似回答