✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。【韩老师建议不超过3层,可读性不好】
if(){
if(){
//if-else...
}
else{
//if-else
}
}
参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。
import java.util.Scanner;
/**
* ClassName: NestedIf
* date: 2022/8/31 13:41
*
* @author DingJiaxiong
*/
public class NestedIf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入该歌手的成绩:");
double score = scanner.nextDouble();
if (score > 8.0){
System.out.println("请输入性别:");
char gender = scanner.next().charAt(0);
if (gender == '男'){
System.out.println("进入男子组");
}else if(gender == '女'){
System.out.println("进入女子组");
}
else{
System.out.println("性别有误,不能参加决赛");
}
}
else{
System.out.println("您已被淘汰");
}
}
}
运行结果
switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
...
case 常量n:
语句块n;
break;
default:
default语句块;
break;
}
1.switch关键字,表示swtich分支
2.表达式对应一个值
3.case常量1:当表达式的值等于常量1,就执行语句块1
4.break :表示退出swtich
5.如果和case常量1匹配,就执行语句块1,如果没有匹配,就继续匹配case常量2
6.如果一个都没有匹配上,执行default
import java.util.Scanner;
/**
* ClassName: Switch01
* date: 2022/8/31 13:49
*
* @author DingJiaxiong
*/
public class Switch01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符(a-c)");
char c1 = scanner.next().charAt(0);
switch (c1){
case 'a':
System.out.println("今天星期一");
break;
case 'b':
System.out.println("今天星期二");
break;
case 'c':
System.out.println("今天星期三");
break;
default:
System.out.println("输入的字符不正确,没有匹配的");
}
System.out.println("退出了switch");
}
}
运行结果
表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int
switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum[枚举],String)
case子句中的值必须是常量,而不能是变量
default子句是可选的,当没有匹配的case时,执行default
break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break;