加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中while(x = false)和while(!x)之间有什么区别?

发布时间:2020-12-15 02:07:28 所属栏目:Java 来源:网络整理
导读:对不起,我是 Java的新手,所以这个问题可能不清楚. 我最近一直在处理在while循环中包含try和catch语句,因为我想确保从程序的其余部分包含输入. 我遇到过一个问题,在while条件下在变量前面使用感叹号(!)(例如while(!done))而不是使用= false(例如while(done
对不起,我是 Java的新手,所以这个问题可能不清楚.

我最近一直在处理在while循环中包含try和catch语句,因为我想确保从程序的其余部分包含输入.

我遇到过一个问题,在while条件下在变量前面使用感叹号(!)(例如while(!done))而不是使用= false(例如while(done = false))改变了我的程序的方式运行.

前者(!done)导致try和except语句按预期运行.
后者(done = false)不会,只是跳过它们并继续前进到代码的下一部分.

我的印象是!在变量意味着与var = false相同之前.

我错了吗?

这是一个例子:

import java.util.Scanner;

public class TestOne {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        int num;
        boolean inputDone = false;
        while (!inputDone) {
            try {
                System.out.print("Enter in a number here: ");
                num = input.nextInt();
                inputDone = true;
            }
            catch (Exception e) {
                System.out.println(e);
                System.exit(0);
            }
        }
        System.out.println("Success!");
    }
}

目前,编译和运行程序将顺利进行:它会提示我输入一个数字,输入一个字母或者很长的数字会导致它打印出异常类型并退出.输入正常数字会导致打印成功!

另一方面,如果我用inputDone = false替换!inputDone,它只会打印出Success!当我运行程序时.

任何人都可以解释我之间的区别!和while循环中的= false语句?

解决方法

注意done = false和done == false之间的区别.第一个将done指定为false并将其评估为false,第二个将false与false进行比较,与!done完全相同.

所以如果你使用:

while (done = false)
{
 // code here
}

然后将done设置为false,并且while循环中的代码根本不运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读