java一个while循环问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java一个while循环问题相关的知识,希望对你有一定的参考价值。

Suppose the following code is executed:
int a = 1;
int b = 1;
while (a >= b || b > 5)
if (a % b == (a - b))
a = b - 1;
else
b = a + 1;


How many times will the body of the while-loop be executed?

希望能简单说下原因,谢谢
在a=0,b=1之后,为什么不能进入else b=a+1; 的循环?这样以后,就是一个无限循环啊

只有一次啊,
第一次:根据a>=b进入while循环,while循环里是什么内容呢?就是一个if判断,此时a % b == (a - b)是满足的,所以就执行a=b-1,于是a变成0,b还是1。至此,第一次while循环执行完。

然后是第二次的while条件判断,很明显,while条件是false了,所以根本不会去执行while的循环体。while的循环体是什么?不是单单一个if判断,而是这样:while(条件表达式)循环体语句。在这个例子当中,if和else都是循环体的一部分。if都不去执行了,何况else呢?当然不会再进入else b=a+1; 的循环
参考技术A 一次。根据a>=b进入循环,执行
if (a % b == (a - b)) //a%b=0;a-b=0
a = b - 1;

此时a=0;b=1;
a>=b||b>5为假,退出循环。
参考技术B 首先,你满足while条件进入if条件判断,也满足.然后执行a=b-1>a=0,b=1,退出循环! 参考技术C 1次
执行一次后a=0 b还是1 所以跳出循环
参考技术D 1,2,3楼全部是正解,这种问题其实没有必要来这问的,只要你认真的,一步一步的分析一下整个的执行过程很简单的,阅读代码是程序员最基本的技能

以上是关于java一个while循环问题的主要内容,如果未能解决你的问题,请参考以下文章

Java用do-while循环写出一个抽奖程序

java操作数据库时在while循环里面new一个对象和在while循环外面new一个对象有啥区别?

Java流程控制之while循环详解

Java 循环结构 - for, while 及 do...while

java_do-while循环和while循环区别

Java 循环结构 - for, while 及 do...while