写不好
if (b == false) //...
while (b != true) //...
Run Code Online (Sandbox Code Playgroud)
是不是总是更好,而不是写:
if (!b) //...
while (!b) //...
Run Code Online (Sandbox Code Playgroud)
据推测,性能没有差异(或者存在?),但是如何衡量两者之间的显性,简洁性,清晰度,可读性等?
为了限制主观性,我还要感谢来自权威编码风格指南的任何引用,这些引用始终是优选的,或者在何时使用.
注意:变量名称b仅用作示例,ala foo和bar.
我总是写这样的布尔表达式:
if (!isValid) {
// code
}
Run Code Online (Sandbox Code Playgroud)
但我的新雇主坚持以下风格:
if (false == isValid) {
// code
}
Run Code Online (Sandbox Code Playgroud)
一种风格是首选,还是标准?
对不起,我是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!");
}
}
Run Code Online (Sandbox Code Playgroud)
目前,编译和运行程序将顺利进行:它会提示我输入一个数字,输入一个字母或者很长的数字会导致它打印出异常类型并退出.输入正常数字会导致打印成功!
另一方面,如果我用inputDone = false替换!inputDone,它只会打印出Success!当我运行程序时.
任何人都可以解释我之间的区别!和while循环中的= false语句?