这个很典型的作用域问题,if后如果省略{},那么if只作用于其后面的第一行代码
这时候如果这行代码只是个变量声明语句的话,这个变量是没有其他任何逻辑可以访问到的,因为作用域问题(如果有{},那么声明语句中声明的变量只在这个{}内可用),由于省略了{},作用域有且只有1行,这行代码声明的变量谁也没法访问,这条声明语句就是个废语句,是无效的声明语句,java语法 中严禁出现废语句的,所有废语句都会变成编译错误,不允许出现
类似的比如
public String getName(){String name = "mike"
return name
name = "jack"//这条也是废语句,永远不可能被执行到,也会编译不通过
}
声明了变量但在后续的代码里从不用它,语法是允许的,但是声明一个根本没法用的变量就不允许了
import java.util.Scannerpublic class Student {
public static void main(String[] args) {
Scanner sr=new Scanner(System.in)
System.out.println("请输入一个数")
byte b=sr.nextByte()
if(b%2==0){
System.out.println("偶数")
}else{
System.out.println("奇数")
}
}
}
if条件语句里条件的并列有两个连接符:&&
和
||
&&
表示并且,||
表示或者
比如表达如果A不等于1并且A不等于2,可以这样写
1if(A!=1 &&A!=2)
比如表达如果A等于1或者A等于2,可以这样
1if(A==1 || A==2)
还可以混合用,比如
1if(A <10 &&(A==1 || A==2))
上面例子的意思是
如果A小于10并且(A等于1或A等于2)。
当然上面例子中等于1或2肯定是小于10的,所以前面的小于10写不写并没有意义,这里只是举例。