流程控制语句:顺序结构、选择结构、循环结构(本章介绍if条件语句)
流程控制语句:顺序结构、选择结构、循环结构
一、顺序结构:按照代码的顺序,自上而下执行
二、选择结构(又叫做分支结构)
1、分类:(1)if(条件)语句 (2)switch语句
2、if语句的格式:
(1)if语句1:
if(关系表达式){
语句体;
}
执行流程:
首先判断关系表达式的结果是true,那么执行大括号中的语句;
如果关系表达式的结果是false,就跳过大括号直接输出。
(2)if语句2:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:首先判断关系表达式的结果;如果结果是true,就执行语句体1;
如果结果是false,就执行语句体2
(3)if语句3:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}else if(关系表达式3){
语句体3;
}
...
else{
语句体n;
}
(3)注意事项:
①if后面括号里面比较的结果必须是布尔类型,或者直接写true/false也行
②如果在关系表达式的小括号后面加个分号,说明if语句默认存在一个空语句体(不会报错)
3、if语句1
例://需求:判断a是否等于10
public class IfDemo1 {
public static void main(String[] args) {
System.out.println("程序开始执行");
int a = 12;
if(a==10){ //首先判断if括号里的结果是true还是false
System.out.println("a等于10"); //判断结果是false,所以if后面大括号里不执行
}
System.out.println("over"); //直接跳出if大括号,执行大括号外的
}
}
执行结果如下:
程序开始执行
over
Process finished with exit code 0
4、if语句2:
例: //需求:上厕所:男生走男生通道,女生走女生通道
//键盘录入与if语句2实现(第一种方法)
import java.util.Scanner; //第1步:导包
public class IfDemo2_1 {
public static void main(String[] args) { //创建main方法
Scanner sc = new Scanner(System.in); //第2步:创建键盘录入对象
System.out.println("请输入你是男生还是女生:"); //第3步:键盘录入信息
int i = sc.nextInt(); //第4步:调用对象中的方法,接收键盘录入的信息
if(i==1){
System.out.println("请走男生通道");
}else{
System.out.println("请走女生通道");
}
}
}
//需求:上厕所:男生走男生通道,女生走女生通道
使用键盘录入与if语句2实现(第二种方法)
import java.util.Scanner; //第1步:导包
public class IfDemo2 {
public static void main(String[] args) { //创建main方法
Scanner sc = new Scanner(System.in); //第2步:创建键盘录入对象
System.out.println("请输入你是男生还是女生:"); //第3步:键盘录入信息
String sex = sc.next(); //第4步:调用对象中的方法,接收键盘录入的信息
//String表示接收字符串,同时nextInt的Int去掉
if("男生".equals(sex)){ //"男生"是字符串,使用equals方法(后续会说)
//if括号里的意思是:判断变量sex这个值是不是男生
System.out.println("请走男生通道");
}else{
System.out.println("请走女生通道");
}
}
}
执行结果如下:
请输入你是男生还是女生:
男生
请走男生通道
Process finished with exit code 0
5、 if语句2与三目运算符的关系
回顾: 三目运算符格式:(关系表达式)?表达式1:表达式2
如果关系表达式是true,则执行表达式1;如果是false,则执行表达式2
(1)当if-else格式中的语句体是个*输出语句*的时候,不能转换成三目运算符
(2)当if-else格式中的语句体不是一条的时候,也不能转换成三目运算符
①if语句2可以转换为三目运算符的例子
例://需求:输出两个数中较大的值
public class IfDemo3_1 {
public static void main(String[] args) {
int a =10;
int b =20;
int res = (a>b)?a:b;
System.out.println(res);
if(a>b){
res = a;
}else{
res = b;
}
System.out.println(res);
}
}
输出结果为:
20
20
Process finished with exit code 0
②当if-else格式中的语句体是个*输出语句*的时候,不能转换成三目运算符,代码如下
int a =10;
int b =20;
int res = (a>b)?a:b;
System.out.println(res);
if(a>b){
System.out.println(a);
}else{
System.out.println(b);
}
虽然二者结果一样,但是不能相互转换
③当if-else格式中的语句体不是一条的时候,也不能转换成三目运算符
if(a > b){
res1 = a;
a++;
}else {
res1 = b;
b++;
}
System.out.println(res1);
转换的结果是这样的:int res1 = (a > b)?res1=a;a++;:res1=b;b++
这样系统会报错
6、if语句3:
例:需求:学生考试成绩判断
0-60 不及格
60-80 中等
80-90 良好
90-100 优秀
if语句3与键盘录入改进
import java.util.Scanner; //第1步:导包
public class IfDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //第2步:创建键盘录入对象
System.out.println("请输入阿伟的成绩:"); //第3步:键盘录入信息
int score = sc.nextInt(); //第4步:接收键盘录入的信息
if(score>=0 & score<60){
System.out.println("不及格");
}else if(score>=60 & score<90){
System.out.println("良好");
}else if(score>=90 & score<=100){
System.out.println("优秀");
}
}
}
执行结果如下:
请输入阿伟的成绩:
98
优秀
Process finished with exit code 0

浙公网安备 33010602011771号