黑马程序员技术交流社区
标题:
为什么没有else就能运行出结果,有就没有结果。编译无错误
[打印本页]
作者:
18643448863
时间:
2014-9-18 23:40
标题:
为什么没有else就能运行出结果,有就没有结果。编译无错误
class qiuhe7
{
public static void main (String[] args)
{
int num=0,x=1;
while(x<=100)
{
if(x%7==0)
num=num+x;
else
x++;
}
System.out.println(num);
}
}
作者:
clevergump
时间:
2014-9-18 23:40
1. 添加else时:只有if条件不满足时才会执行x++的操作。当x增加到值为7时,满足 x%7==0的条件,这样就不执行else里的x++,本次结束后 x==7不变;然后再次进入循环,还是执行if代码块同时x的值依然为7进入下一次循环。。。这样x的值将一直为7,而只有num的值在变化(每次加7),循环就会一直执行下去成为死循环,所以就无法执行输出语句,也就无法看到输出结果了。
2. 未添加else时,不论if条件是否满足都会执行x++的操作。这样就避免了前面提到的死循环,输出语句也就能顺利执行了。
其实可以通过使用Eclipse等软件的Debug单步运行,就能观察到死循环的现象了。
作者:
18643448863
时间:
2014-9-18 23:45
坐等解释啊
作者:
yingsun
时间:
2014-9-19 02:20
楼上说的对。
作者:
Tony丶Just
时间:
2014-9-19 09:47
嗯,是这样的……
作者:
风轻扬
时间:
2014-9-19 16:53
Tony丶Just 发表于 2014-9-19 09:47
嗯,是这样的……
我也不懂,受教了!
作者:
高泳
时间:
2014-9-20 12:58
进来看看,受教了。
作者:
张丽丹
时间:
2014-9-22 12:47
没有else,x值永远为1,是个死循环
作者:
yueyazhishang
时间:
2014-9-22 14:13
楼上说的对。
作者:
荣英洁
时间:
2014-9-23 19:32
应该把else 去掉
作者:
lwj123
时间:
2014-9-24 16:26
这个不是很简单吗?x的值不变,肯定不会跳出循环的,一直死循环下去,永远不会输出!
作者:
xizhiqiang
时间:
2014-9-24 23:49
主要是当x自增到7的时候,将一直执行的是if语句中的内容不再执行else的自增运算,形成死循环,如果没有else的话无论是否执行语句都得执行自增运算
作者:
cherry@cookie
时间:
2014-9-26 08:04
一楼正解。
作者:
小刺风
时间:
2014-9-26 19:07
来晚了{:3_46:}
作者:
14年7月想去it
时间:
2014-10-7 16:40
把else去掉就可以了,因为满足if条件,就不会执行else下的语句了
作者:
紫缘ぶ逸影
时间:
2014-10-10 10:52
没有对NUM进行限制 程序成为死循环 可以在while中 用 | 连接 x 和num 的表达式 进行条件限制
作者:
郑飞
时间:
2014-10-21 11:25
程序存在运行不到的语句,要不控制while 成有限循环要不就是去掉实现不到的那些代码。
作者:
李票
时间:
2014-12-28 16:55
这个问题很容易解释,if-else出现的时候,两者只能取得一个数值结果,要么是if中的要么是else中的
作者:
致逝去的青春
时间:
2015-3-15 13:40
不错,学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2