if-else
- 顺序控制
- 分支控制if-else
- 单分支
- 1.基本语法
- 2.说明:
- 3.案例说明
- 4.流程图
- 双分支
- 1.基本语法
- 2.说明:
- 3.案例说明
- 4.流程图
- 5.练习
- 多分支
- 1.基本语法
- 2.说明:
- 3.流程图
- 4.练习
- 嵌套分支
- 1.基本介绍
- 2.基本语法
- 3.练习
顺序控制
1.介绍:程序从上到下逐行地执行,中间没有任何判断和跳转。
2.Java中定义变量时采用合法的前向引用。如:
public class Test{public static void main(String[] args){int num1 = 12;int num2 = num1 + 2;}
}
错误形式:
public class Test{public static void main(String[] args){int num2 = num1 + 2;int num1 = 12;}
}
分支控制if-else
让程序有选择的执行,分支控制有三种:单分支、双分支、多分支。
单分支
1.基本语法
if(条件表达式){执行代码块;(可以有多条语句)}
2.说明:
当条件表达式为true时,则会执行{ }的代码。如果为false,就不执行。
如果{ }中只有一条语句,则可以不用{ },建议写上{ }
3.案例说明
编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责,送入监狱”
import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){//编写一个程序可以输入人的年龄,如果该同志的年龄大于18岁//则输出“你年龄大于18,要对自己的行为负责”////思路分析//1.接收输入的年龄,定义一个Scanner对象//2.把年龄保存到一个变量 int age//3.用if判断,输出相应信息//定义一个Scanner 对象Scanner sc = new Scanner(System.in);System.out.println("请输入年龄:");//把年龄保存到一个变量 int ageint age = sc.nextInt();//用if判断,输出对应信息if(age > 18){System.out.println("你年龄大于18,要对自己的行为负责");} System.out.println("程序继续……");}
}
4.流程图
双分支
1.基本语法
if(条件表达式){执行代码块1;
}
else{执行代码块2;
}
2.说明:
当条件表达式成立,即执行代码块1,否则执行代码块2。如果执行代码块中只有一条语句,则可以不用{ },建议写上{ }。
3.案例说明
编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责”。否则输出“要提前学会对自己的行为负责”
import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){//编写一个程序可以输入人的年龄,如果该同志的年龄大于18岁//则输出“你年龄大于18,要对自己的行为负责”////思路分析//1.接收输入的年龄,定义一个Scanner对象//2.把年龄保存到一个变量 int age//3.用if-else判断,输出相应信息//定义一个Scanner 对象Scanner sc = new Scanner(System.in);System.out.println("请输入年龄:");//把年龄保存到一个变量 int ageint age = sc.nextInt();//用if判断,输出对应信息if(age > 18){System.out.println("你年龄大于18,要对自己的行为负责");} else{System.out.println("要提前学会对自己的行为负责");}}
}
4.流程图
5.练习
1)定义两个变量int,判断二者之和,是否能被3又能被5整除,打印提示信息
public class comment00{//编写一个main方法public static void main(String[] args){//定义两个变量int,判断二者之和//是否能被3又能被5整除,打印提示信息////思路分析//1.定义两个变量int num1,num2//2.定义一个变量int sum = num1 + num2;//3.sum % 3 ,5 后等于0,说明可以整除//4.使用if-else来提示对应信息int num1 = 10;int num2 = 21;int sum = num1 + num2;if(num1 % 3 == 0 && num2 % 5 == 0){System.out.println("和可以被3又能被5整除");}else{System.out.println("和不可以被3又能被5整除");}}
}
2)判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除但不能被100整除;(2)能被400整除
import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){//判断一个年份是否是闰年,闰年的条件是符合下面二者之一://(1)年份能被4整除但不能被100整除;(2)能被400整除////思路分析//1.接收输入的年份,定义一个Scanner对象//2.定义一个int变量 year保存年份//3.(1)(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)Scanner sc = new Scanner(System.in);System.out.println("请输入年份:");int year = sc.nextInt();if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){System.out.println(year + "是闰年");}else{System.out.println(year + "不是闰年");}}
}
多分支
1.基本语法
if(条件表达式1){执行代码块1;
}
else if(条件表达式2){执行代码块2;
}
.....
else{执行代码块n;
}
2.说明:
1)当条件表达式1成立时,即执行代码块1
2)如果表达式1不成立,才去判断表达式2是否成立
3)如果表达式2成立,就执行代码块2
4)以此类推,如果所有的表达式都不成立
5)则默认执行 else 的代码块。注意,只
能有一个执行入口。(只要找到一个执行入口就跳出分支)
6)多分支 可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有
3.流程图
4.练习
请输入保国同志的芝麻信用分:
如果:
1.信用分为100分,输出 信用极好;
2.信用分为(80,99]时,输出 信用优秀;
3.信用分为[60,80]时,输出 信用优秀;
4.其他情况,输出 信用不及格
5.请从键盘输入保国的芝麻信用分,并加以判断
import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println("请输入信用分(1-100):");int grade = sc.nextInt();//如果输入的不是整数,而是hello...//这里后面可以使用异常处理机制搞定if(grade >=1 && grade <= 100){if(grade == 100){System.out.println("信用极好");}else if(grade >80 && grade <=99){System.out.println("信用优秀");}else if(grade >= 60 && grade <=80){System.out.println("信用一般");}else{System.out.println("信用不及格");}}else{System.out.println("请重新输入1-100的信用分");}}
}
嵌套分支
1.基本介绍
在一个分支结构中有、又完整的嵌套了另一个完整的分支结构,里面的分支结构称为内层分支,外面的分支结构称为外层分支。建议:不要超过3层(可读性不好)
2.基本语法
if(){if(){//if-else...}else{//if-else...}
}
3.练习
参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组,输入成绩和性别进行判断和输入信息
//double score; char gender;
//接收字符 char gender = sc.next().charAt(0)
import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){//思路://1.创建Scanner对象,接收用户输入//2.接收成绩保存到 double score//3.用if-else 判断,如果初赛成绩大于8.0进入决赛,否则提示淘汰。//4.如果进入到决赛,再接收 char gender 使用if-else输出信息System.out.println("请输入初赛成绩:");Scanner sc = new Scanner(System.in);double score = sc.nextDouble();if(score > 8.0){System.out.println("请输入性别:");char gender = sc.next().charAt(0);if(gender == '女'){System.out.println("进入女子组决赛");}else if(gender == '男'){System.out.println("进入男子组决赛");}else{System.out.println("性别输入有误,无法进入决赛");}}else{System.out.println("sorry,你被淘汰");}}
}
出票系统:根据淡旺季的月份和年龄,打印票价
4-10 旺季:
成人(18-60):60
儿童(<18):半价
老人(>60):1/3
淡季:
成人:40
其他:20
import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{//编写一个main方法public static void main(String[] args){//1.创建Scanner对象,接收用户输入//2.淡季和旺季双分支,接收月份保存到int month,接收年龄保存到int age//3.if-else嵌套System.out.println("请输入现下月份(1-12):");Scanner sc = new Scanner(System.in);int month = sc.nextInt();//旺季if(month >=4 && month <=10){System.out.println("请输入年龄:");int age = sc.nextInt();if(age >= 18 && age <=60){System.out.println("票价60");}else if(age < 18 && age > 0){System.out.println("半价票30");}else if(age > 60 && age <= 130){System.out.println("票价20");}else{System.out.println("输入年龄不符规范,请重新输入");}}//淡季else{System.out.println("请输入年龄:");int age = sc.nextInt();if(age >= 18 && age <=60){System.out.println("票价40");}else{System.out.println("票价20");}} }
}