在while条件中分配值

问题描述 投票:0回答:1

首先,我知道=和==之间的区别是什么。我想使用=隐式进行无限循环。所以我的代码看起来像这样:

 boolean flag= true;
    while (flag=false){
        System.out.println("inside loop");
    }
    System.out.println("rest");

[不幸的是,它没有进入循环并显示“ rest”。为什么?我读错了吗?在while条件下,我将值false分配给标志。因此,它在flag = false(是)时循环。

当我这样做时(从false更改为true),它将进入无限循环:

boolean flag= true;
    while (flag=true){
        System.out.println("inside loop");
    }
    System.out.println("rest");

我认为这两个示例都应该进入循环。但是只有第一个。请帮助我理解这一点。谢谢

java loops conditional-statements infinite-loop infinite
1个回答
0
投票

=和==之间的唯一区别是:

  • =是一个赋值运算符,您可以将值提供给int,boolean或常量/变量。
  • ==是一个运算符,主要在循环中使用(for,else for,if和while)

对于您的情况,我可能会说您需要在while循环内使用==:

boolean flag=true;
    while (flag==false){
        System.out.println("inside loop");
    }
    System.out.println("rest");

使用无限循环也不太好。您不会外出,它会破坏您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.