Java-为什么if()块在while()语句中执行?

时间:2013-08-05 12:29:45

标签: java if-statement while-loop

我需要解释,为什么if()阻止执行while()语句内部。它说: while语句计算表达式,它必须返回一个布尔值。如果表达式的计算结果为true,则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)视为假?那么如果块执行怎么办?基本上它似乎返回表达式 5!= 5 true 布尔值。

感谢您的解释!

8 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

然后,您将1添加到变量。

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

但是,在下一次迭代中,while中的条件不再适用。

答案 4 :(得分:2)

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

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

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

答案 5 :(得分: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 
    }

答案 6 :(得分:2)

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

和x = x + 1在while循环内执行,因此x = 5;和下一行 内部while循环是if(x == 5)System.out.println(“我现在是5!”);

当x的值为5时,执行进入if条件,我们将 输出为“我现在5岁!”

答案 7 :(得分:1)

表达式x == 5被计算为true,因为x在while循环内被更改。

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