java 在if块内不能声明变量?

Python015

java 在if块内不能声明变量?,第1张

这个很典型的作用域问题,if后如果省略{},那么if只作用于其后面的第一行代码

这时候如果这行代码只是个变量声明语句的话,这个变量是没有其他任何逻辑可以访问到的,因为作用域问题(如果有{},那么声明语句中声明的变量只在这个{}内可用),由于省略了{},作用域有且只有1行,这行代码声明的变量谁也没法访问,这条声明语句就是个废语句,是无效的声明语句,java语法 中严禁出现废语句的,所有废语句都会变成编译错误,不允许出现

类似的比如

public String getName(){

    String name = "mike"

    return name

    name  = "jack"//这条也是废语句,永远不可能被执行到,也会编译不通过

}

声明了变量但在后续的代码里从不用它,语法是允许的,但是声明一个根本没法用的变量就不允许了

import java.util.Scanner

public 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写不写并没有意义,这里只是举例。