use*_*031 9 java variables boolean
我刚开始学习Java.在我关注的在线课程中,我被要求尝试以下代码:
String email1 = "meme@me.coh";
String email2 = "meme@me.com";
Boolean isMatch = false;
isMatch = email1.equals (email2);
if (isMatch == true){
System.out.println("Emails match");
}
else{
System.out.println("Emails don't match");
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么isMatch在下一行我要求声明为false时我正在比较电子邮件地址并将值分配给isMatch.
我已经尝试了以下代码,它似乎工作原理相同:
String email1 = "meme@me.coh";
String email2 = "meme@me.com";
Boolean isMatch;
isMatch = email1.equals (email2);
if (isMatch == true){
System.out.println("Emails match");
}
else{
System.out.println("Emails don't match");
}
Run Code Online (Sandbox Code Playgroud)
在课程中,它没有解释为什么我isMatch首先宣布为假.isMatch在比较电子邮件地址之前,我有必要声明为假吗?
Tom*_*icz 13
不仅没有必要首先声明它false,我还会添加一些其他改进:
用boolean而不是Boolean(也可以null无缘无故)
在声明期间分配:
boolean isMatch = email1.equals(email2);
Run Code Online (Sandbox Code Playgroud)... final如果可以,请使用关键字:
final boolean isMatch = email1.equals(email2);
Run Code Online (Sandbox Code Playgroud)最后但并非最不重要的:
if (isMatch == true)
Run Code Online (Sandbox Code Playgroud)
可表示为:
if (isMatch)
Run Code Online (Sandbox Code Playgroud)
这使得isMatch标志不那么有用,内联它可能不会损害可读性.我建议那里寻找一些更好的课程/教程......
你不必,但有些人喜欢显式初始化所有变量(我也这样做).特别是那些使用各种语言编程的人,更容易拥有始终初始化变量的规则,而不是逐个语言地逐个语言地决定.
例如,Java具有Boolean,int等的默认值.另一方面,C不会自动给出初始值,除非您自己明确指定值,否则无论在内存中发生什么都是最终的结果.
在上面的例子中,正如您所发现的那样,代码也可以在没有初始化的情况下工作,因为变量是在下一行中设置的,这使得它看起来特别多余.有时您可以组合这两行(声明和初始化 - 如某些其他帖子中所示)并获得两种方法中的最佳方法,即使用email1.equals (email2);操作结果初始化您的变量.