Java中while(x = false)和while(!x)之间有什么区别?
对不起,我是
Java的新手,所以这个问题可能不清楚.
我最近一直在处理在while循环中包含try和catch语句,因为我想确保从程序的其余部分包含输入. 我遇到过一个问题,在while条件下在变量前面使用感叹号(!)(例如while(!done))而不是使用= false(例如while(done = false))改变了我的程序的方式运行. 前者(!done)导致try和except语句按预期运行. 我的印象是!在变量意味着与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循环中的代码根本不运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |