switch。。。case
-
语法
switch(值){ case 值1: 匹配值1 case 值2: 匹配值2 }
-
注意:
- default:没有具体的值,除了其他的case都不匹配,则匹配default,用法同case
- default位置一般推荐最后,其他位置也可以,注意要不要加break
- break:跳出整个switch语句
- case只要匹配上,则其他case不再进行匹配,直接顺序执行所有的代码。直到遇到break或者整个结束
- 值类型int,byte,short,char,字符串,枚举enum
if。。else 和switch…case
- if语句可以做等值判断,也可以做区间判断
- switch语句只能做等值
- 在做等值判断时两种可以互换
嵌套
- 嵌套符合语法结构即可
- if(){}
- if(){}else{}
- switch(){case:}
- 以上结构固定
- 嵌套考虑条件
import java.util.Scanner;
public class Regist {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
System.out.println("欢迎来到个人博客!");
System.out.println();
System.out.println();
System.out.println();
System.out.println("1.已有账号,登录\n2.注册新账号\n3.退出系统");
System.out.println("请选择:");
int choose = input.nextInt();
switch(choose) {
case 1:
System.out.println("输入用户名:");
String name = input.next();//name 在switch中
System.out.println("输入密码:");
String pass = input.next();
if (name.equals("张三")&&pass.equals("zhangsan")) {
System.out.println("1.查看用户信息\n2.修改密码\n3.充值");
} else {
System.out.println("用户名或者密码错误,请重新登录");
}
break;
case 2:
System.out.println("输入用户名:");
String name1 = input.next();
System.out.println("输入密码:");
String pass1 = input.next();
System.out.println("请确认密码:");
String pass2 = input.next();
if (!name1.equals("张三")&&pass1.equals(pass2)) {
System.out.println("注册成功,请登录");
} else if(name1.equals("张三")){
System.out.println("用户名重复");
} else {
System.out.println("密码不一致");
}
break;
case 3:
break;
default:
System.out.println("输入有误请输入1 ~ 3");
return;
}
}
}
变量作用域
- 定义的一个变量,从定义的地方开始,到所在的代码块(大括号)结束。
- 从定义开始,到结束,也就是说在一个变量的作用域内,不能定义重复的变量。
- 出了作用域的变量将不能在使用