Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—为什么执行while()语句中的if()块?_Java_If Statement_While Loop - Fatal编程技术网

Java—为什么执行while()语句中的if()块?

Java—为什么执行while()语句中的if()块?,java,if-statement,while-loop,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.pr

我需要解释一下,为什么
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)
视为false吗?那么,如果执行块,该如何执行呢?基本上,它似乎为表达式5返回真正的布尔值=5


谢谢你的解释

当您进入循环的主体并且
x==4
时,循环继续进行

然后,将
1
添加到变量中


现在是
5
,因此
if
的条件为真

当您进入循环的主体并且
x==4
时,循环继续进行

然后,将
1
添加到变量中


现在是
5
,因此
if
的条件为真

如果x==4,则当满足
x!=5
。然后增加x
x=x+1
,得到
x==5
。这就是为什么

如果x==4,那么while满足
x!=5
。然后增加x
x=x+1
,得到
x==5
。这就是为什么这是因为
x进入循环后等于5。在下一次迭代中,循环停止。您应该将
x=x+1
行移动到
if
之后,以使其按您想要的方式工作

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

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


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

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

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

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

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

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

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

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


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

表达式
x==5
计算为true,因为x在while循环中发生了更改


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

表达式
x==5
计算为true,因为x在while循环中发生了更改

  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 
    }

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

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

  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 
    }
在while循环中执行x=x+1,因此x=5;下一行呢 内部while循环是if(x==5)System.out.println(“我现在5岁了!”)

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

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

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

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

x=4,下一行将1添加到x,因此在if语句时x将=5使用
+=
+
而不是
x=x+1
。因此
x++
。了解有关while语句的更多信息。while中的条件只在while主体被执行之前(以及while主体被执行之后)才被评估。如果您调试了代码(闻起来像是家庭作业),那么您自己就会找到答案;)x=4,下一行将x加1,因此在if语句使用
+=
+
时x将=5,而不是
x=x+1
。因此
x++
。了解有关while语句的更多信息。while中的条件只在while主体被执行之前(以及while主体被执行之后)才被评估。如果您调试了代码(闻起来像是家庭作业),那么您自己就会找到答案;)这应该是正确的答案。我认为@Matt不明白,虽然身体状况并没有在whilet中评估,但这应该是正确的答案。我想@Matt不明白while的身体并没有评估while的状况