1

我需要解释一下,为什么要执行语句if()内部的块。while()据说: while 语句计算表达式,它必须返回一个布尔值。如果表达式的计算结果为真,则 while 语句将执行 while 块中的语句。所以请看一下这段代码:

class test{
static int x;

public static void main(String args[]){
    while(x!=5){
        x=x+1;
        if(x==5)
            System.out.println("I'm 5 now!");
    }
  }
}

一旦变量 x 增加了 5,不应该被(x!=5)认为是错误的吗?那么 if 块怎么会被执行呢?基本上,它似乎为表达式5!=5返回了真正的布尔值。

谢谢你的解释!

4

8 回答 8

5

如果 x == 4 则满足 while x != 5。然后你增加 xx = x+1 并拥有x == 5. 这就是为什么

于 2013-08-05T12:31:26.560 回答
3

当您进入循环的主体 和x == 4时,它会继续。

然后,添加1到变量中。

现在是5,所以if的条件为真!

于 2013-08-05T12:31:19.340 回答
3

这是因为进入循环x你的值等于 5 。在下一次迭代中,循环停止。您应该在之后移动行以使其按您想要的方式工作x=x+1if

于 2013-08-05T12:31:48.787 回答
2

当您进入X等于 4 的循环时,它首先递增到值 5,因此满足表达式x == 5

但是,在下一次迭代中,条件while不再为真。

于 2013-08-05T12:31:51.530 回答
2

While 循环被称为前置条件循环,这意味着它们在执行某些语句块之前检查条件。

因此,当xbecome5在循环体中时,实际检查的最后一个条件是x != 4.

x != 5将在循环的下一次迭代中检查。

于 2013-08-05T12:32:37.690 回答
2
  while(x!=5){ // here maximum value accept as true is 4
        x=x+1; // now 4+1 and x =5
        if(x==5) //yes condition satisfied 
            System.out.println("I'm 5 now!"); //so out put will print 
    }
于 2013-08-05T12:34:39.163 回答
2

它在 x=4 时进入 while 循环,即 (4!=5 right??)

而 x=x+1 在 while 循环内执行,所以 x=5; while 循环中的下一行是 if(x==5) System.out.println("I'm 5 now!");

由于 x 的值为 5 ,执行进入 if 条件,我们将得到输出“我现在是 5!”

于 2013-08-05T12:39:17.537 回答
1

表达式x == 5被评估为真,因为 x 在 while 循环内被更改。

当 x 等于 4(这意味着x != 5仍然评估为真)时,下一行 ( x = x + 1) 导致 x 为 5。

于 2013-08-05T12:33:40.390 回答