流程控制语句:顺序结构、选择结构、循环结构(本章介绍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

posted @ 2021-11-26 21:08  阿伟宝座  阅读(591)  评论(0)    收藏  举报