学习Java – 8
在if语句中,比较字符串的条件式。
在处理数字时使用的”==”不能用于字符串比较。
当涉及字符串时,请使用”equals”。
从语法上来说,「==」和其他一些标点符号的使用稍有不同。
変数a.equals(変数b)
写起来好像是这样的。
如果想要用if语句比较变量s1和s2,可以用这种方式↓
String s1 = "tomato", s2 = "tomato";
if (s1.equals(s2)){
System.out.println("一致");
}
当s1和s2一致时,执行if语句内的代码。如果想要在「字符串不一致时」执行,可以将条件表达式用括号「( )」括起来,并在前面添加「!」。
!(変数a.equals(変数b))
只有当变量s1和s2不相同时,才会执行if语句内的操作。
String s1 = "tomato", s2 = "potato";
if (!(s1.equals(s2))){
System.out.println("不一致");
}
越来越习惯于使用「!」来表示否定的感觉。
在if语句中将变量赋值导致了错误。
如果在if语句内首次给变量赋值,然后尝试在后续处理中使用该变量的值,则会出现错误。
可能不知道你想说什么,
写作者可能也在想“嗯?嗯?”是吗?
这种感觉,请不要在意。
发生错误的时候是以下情况:
public class Yomogi{
public static void main(String[] args){
int a, b;
a = 1;
if (a == 1){
b = 1; // これと
}
System.out.println("b = " + b); // この関係がダメ
}
}
既然变量a中有1,所以if语句将100%为真,
并且if块内的处理将被执行,所以我以为这样就可以了。
但是,这是错误的。
如果在if语句中首次给变量赋值,这就是问题的关键。因此,在之前先给变量b赋一个适当的值。
public class Yomogi{
public static void main(String[] args){
int a, b;
a = 1;
b = 0; // 事前に0で初期化
if (a == 1){
b = 1;
}
System.out.println("b = " + b);
}
}
如果这样做的话,它会顺利运作起来。
嗯,Java的规定就是这样的。
说到理解了的地方。
即使是在if语句内首次给变量赋值,
只在if语句内使用该变量也是可以的,所以我决定记住这一点。
public class Yomogi{
public static void main(String[] args){
int a, b;
a = 1;
if (a == 1){
b = 1;
System.out.println("b = " + b); // if内だけで使うのはOK
}
}
}
遭遇到一个思考在使用if语句时,务必注意变量赋值的时机的错误。