生活案例: 路口也是一种选择,只能选择一条路走。
上学去哪所学校也是一种选择。
分支是一种选择。
if分支结构语法格式:
if (表达式) {
语句体;
} 执行流程:首先走到if分支判断括号里的表达式,结果为true则执行括号里的语句体,表达式为false,则不执行当前语句体。
public class Demo4{
public static void main(String[] args) {
//结果为false,则不会输出
int a1 = 34;
if (a1 < 21){
System.out.println("您输入的代码错误");
}
//结果为true,则输出语句
int b1 = 45;
if (b1 > 22) {
System.out.println("您输入的代码正确");
}
}
}
public class Demo4{
public static void main(String[] args) {
//练习:用户名 111 密码 111 (int类型的数据) 使用if语句如果用户名和密码都对的话,打印一句话,登陆成功。
int a1 = 111;
int a2 = 111;
if (a1 == 111 && a2== 111) {
System.out.println("登陆成功");
}
}
}
if -else分支结构语法格式:
if (表达式1) {
语句体1;
}else {
语句体2;
} 执行流程:首先走到if判断括号里的表达式为true,则执行当前的语句体,如果表达式为false,则执行else中的语句体2; 只能执行一个,不能同时执行。
public class Demo4{
public static void main(String[] args) {
int a1 = 23;
int a2 = 2;
if (a1 > a2) {
System.out.println("正确");
} else {
System.out.println("错误");
}
System.out.println("------------------------------------");
int s1 = 23;
int s2 = 3;
//如果表达式结果为true,那么会执行当前的语句体,如果表达式为false,则执行else中的语句体
if (s1 < s2) {
System.out.println("正确");
} else {
System.out.println("错误");
}
public class Demo4{
public static void main(String[] args) {
String name = "12345";
String name1 = "12345";
if (name == name1) {
System.out.println("正确");
}
//语句体外的则都会执行
System.out.println("嘻嘻哒");
System.out.println("HelloWorld");
}
}
}
}
案例:判断一个年份是否是闰年。
注意:能被4整除,并且不能被100整除,或者能被400整除的年份
public class Demo4{
public static void main(String[] args) {
//案例:判断一个年份是否是闰年。注意:能被4整除,并且不能被100整除,或者能被400整除的年份
int age = 1996;
if (age % 4 == 0 && age != 100 || age % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
}
}
if-else 嵌套写法语法格式
if (表达式1) {
if (表达式2) {
if (表达式3) {
}else {
语句体3;
}
}else {
语句体2
}
}else {
语句体1;
}执行流程:如果第一个if表达式为true,那么会进如第二个if分支语句,第二个if语句为true,会进入第三个if语句体,如果有一个位false,则不会往下执行。
public class Demo4 {
public static void main(String[] args) {
int a1 = 34;
if (a1 > 12) {//a1大于12则输出哈哈,进入下一个if
System.out.println("哈哈");
if (a1 > 13) {//a1大于了13则输出语句嘻嘻哒 进入下个if
System.out.println("嘻嘻哒");
if (a1 < 12) {//a1小于了12位false,则输出else中的语句
System.out.println("a1小于12");
} else {
System.out.println("a1小于了2");
}
} else {
System.out.println("a1大于13");
}
} else {
System.out.println("a1大于12");
}
}
}
if -else if分支结构
if (表达式1) {
语句体1;
}else if (表达式2) {
语句体2;
}else if (表达式3) {
语句体3;
}else {
语句体4;
}执行流程:首先走到if分支判断布尔表达式结果为true,则执行语句体1;如果表达式结果为false,则进入第二个if分支判断表达式为true,则执行语句体2,如果都为false,则执行语句体4.鱼和熊掌不可兼得,只能执行一个。
/**
* 学生的成绩:
* 90-100:打印优秀
* 80-90:打印良好
* 70-80:打印一般
* 60-70:打印及格
* 60分以下:叫家长
*/
使用if-else if
public class Demo4 {
public static void main(String[] args) {
int score = 88;
if (score > 90 && score < 100) {
System.out.println("优秀");
} else if (score > 80 && score < 90) {
System.out.println("良好");
} else if (score > 60 && score < 50) {
System.out.println("及格");
} else {
System.out.println("正确");
}//使用&&只要两个条件都为true,则执行语句体
//如果有一个为false,则不执行语句体。
}
}
案例
案例:
手机按键
如果你按的是1 打印给爸爸打电话
如果你按的是2 打印给妈妈打电话
如果你按的是3 打印给爷爷打电话
如果你按的是4 打印给奶奶打电话
如果你按的是其他的 报警
int age = 4;
if (age == 1) {
System.out.println("给爸爸打电话");
} else if (age == 2) {
System.out.println("给妈妈打电话");
} else if (age == 3) {
System.out.println("给奶奶打电话");
} else if (age == 4) {
System.out.println("给哥哥打电话");
} else {
System.out.println("报警");
}
switch-case分支结构
也是一种选择,只有满足条件的时候才会执行。
语法格式:
switch(表达式){
case 常量1:
语句体;
break;
case 常量2:
语句体2;
break;
case 常量3:
语句体3;
break;
default:
break;
}执行流程:switch 括号里表达式的值去匹配case后面的常量。如果匹配成功则执行当前的语句体,如果匹配失败则往下执行。
public class Demo4 {
public static void main(String[] args) {
int score = 3;
switch(score){
case 1:
System.out.println("给爸爸打电话");
break;
case 2:
System.out.println("给妈妈打电话");
break;
case 3:
System.out.println("给哥哥带电话");
break;
//如果都匹配失败则执行default里面的语句体;
default:
System.out.println("执行代码错误");
break;
}
}
}
public class Demo4 {
public static void main(String[] args) {
int core = 90;
switch(core / 10){
case 10:
System.out.println("优秀");
break;
case 7:
System.out.println("良好");
break;
case 9:
System.out.println("及格");
break;
case 6:
System.out.println("叫家长");
break;
default:
System.out.println("重新考试");
break;
}
}
}
重点switch(表达式的值可以是什么数据类型的)
byte short int char String 枚举
平时声明变量的时候就是int a = 10;
现在就是在控制台声明值赋值给我们的变量
1.导包
2.创建Scanner对象
3.int a1 = str.NextInt();在控制台输入的数据传给我们的变量a1
Nextbyte()
NextShort
NextInt()
NextLong()
NextFloat()
NextDouble()
Next Line().CharAt()
NextBoolean()
public class Demo4 {
public static void main(String[] args) {
Scanner str = new Scanner(System.in);
System.out.println("请输入一个int类型的数据");
int a1 = str.nextInt();
if (a1 > 23) {
System.out.println("正确");
} else if (a1 > 45) {
System.out.println("嘻嘻哒");
} else if (a1 >= 32) {
System.out.println("哈哈");
} else {
System.out.println("xinfvhbb");
}
}
}