Java选择流程控制语句

6 选择流程控制语句

概述:

  是程序中最简单最基本的流程控制,没有特定的语法结构,只需要按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

  流程图:

   

 if语句的格式:

  第一种:

    if(关系表达式){

      语句体;

    }

  

 执行流程:

    首先判断关系表达式看其结果是true还是false

  如果是true就执行语句体

  如果是false就不执行语句体

 流程图:

 

案例:

package com.lyc.test;

public class IfDemo01 {
    public static void main(String[] args) {
        /**
         * if语句有三种格式:
         * 
         * 第二种: 
         *     if(关系表达式){ 
         *         语句体; 
         *  }
         * 
         * 执行流程: 
         *     A.首先判断 关系表达式 看其结果是true还是false 
         *     B.如果是true,就执行语句体
         *     C.如果是false,就不执行语句体
         * 
         */
        
        // 定义两个变量
        int a = 10;
        int b = 20;
        if (a == b) {
            System.out.println("a等于b");
        }
        
        int c = 10;
        if (a == c) {
            System.out.println("a等于c");
        }

    }
}

 第二种:

    if(关系表达式){

     语句体1;

   }else{

     语句体2;

   }

 执行流程:

  首先判断关系表达式看其结果是true还是false

  如果是true就执行语句体1

  如果是false就执行语句体2

 流程图:

 

案例:

package com.lyc.test;

public class IfDemo02 {
    public static void main(String[] args) {
        /**
         * if语句有三种格式:
         * 
         * 第二种: 
         *     if(关系表达式){ 
         *         语句体1; 
         *  }else{
         *      语句体2
         *  }
         * 
         * 执行流程: 
         *     A.首先判断 关系表达式 看其结果是true还是false 
         *     B.如果是true,就执行语句体1
         *     C.如果是false,就不执行语句体2
         * 
         */
        
        //判断是奇数还是偶数
        // 定义两个变量
        int a = 20;
        //给a重新赋值
        a = 15;
        if (a % 2 ==0) {
            System.out.println("a是偶数");
        }else{
            System.out.println("a是奇数");
        }

    }
}

 第三种:

  if(关系表达式1){

    语句体1; 

  }else if(关系表达式2){

    语句体2;

  }else if(关系表达式3){

    语句体3;

  }

  ......

  else{

    语句体n+1;

  }

 执行流程:

  首先判断关系表达式1看其结果是true还是false

  如果是true就执行语句体1

  如果是false就继续判断关系表达式2看其结果是true还是false

  如果是true就执行语句体2

  如果是false就继续判断关系表达式…看其结果是true还是false

  …

  如果没有任何关系表达式为true,就执行语句体n+1

 流程图:

  

案例:

package com.lyc.test;

public class IfDemo03 {
    public static void main(String[] args) {
        /**
         * if语句有三种格式:
         * 
         * 第三种: 
         *     if(关系表达式1){ 
         *         语句体1; 
         *  }else if(关系表达式2){
         *      语句体2;
         *  }else if(关系表达式3){
         *      语句体3;
         *  }
         *  .......
         *  else{
         *      语句体n+1;
         *  }
         * 
         * 执行流程: 
         *     A.首先判断 关系表达式 看其结果是true还是false 
         *     B.如果是true,就执行语句体1,如果是false就继续进行表达式2的判断,
         *         看其结果是true还是fasle
         *     C.如果是true,就执行语句体2,如果是false就继续进行表达式...的判断
         *         看其结果是true还是false
         *      .......
         *     D.如果没有一个为true的,就执行语句体n+1
         * 
         * if语句的三种格式:
         *     第一种格式适合做一种情况的判断
         *     第二种格式适合做二种情况的判断
         *  第三种格式适合做多种情况的判断
         * 
         */
        
        // x和y的关系满足如下:
        // x>=3 y = 2x + 1;
        // -1<=x<3 y = 2x;
        // x<=-1 y = 2x – 1;
        // 根据给定的x的值,计算出y的值并输出。
        
        //定义变量 
        int x = 5;
        int y = 0;
        if (x >= 3) {
            y = 2*x+1;
        }else if (x >=-1 && x< 3) {
            y = 2*x;
        }else if (x<=-1) {
            y = 2*x-1;
        }
        System.out.println("最后y的值为:"+y);
        
    }
}

If语句练习:

  1> if语句实现获取两个数据较大值

package com.lyc.test;

import java.util.Scanner;

public class IfDemo04 {
    public static void main(String[] args) {
        /**
         * 键盘录入两个数据,获取这两个数据的最大值
         * 
         * 分析:
         *     A.看到键盘录入,三步骤:
         *         导包,创建对象,接收数据
         *     B.获取这两个数据的最大值,其实就是判断这两个数据谁大,把较大的值输出就可以了
         * 
         * 导包:
         *     A.手动导包:import java.util.Scanner;
         *     B.鼠标点击红色叉叉,自动生成
         *     C.快捷键导包:ctrl+shift+o
         */
        //创建对象
        Scanner sc = new Scanner(System.in);
        //接收数据
        System.out.println("请输入第一个数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数:");
        int num2 = sc.nextInt();
        
        
        //采用if语句的第二种格式:
        if (num1>num2) {
            System.out.println("较大的值是:"+num1);
        }else{
            System.out.println("较大的值是:"+num2);
        }
        
        //有的时候我们拿到了想要的值后,未必想直接输出。所以我们可以定义一个变量来接收我们拿到的值
        int max = 0;
        
        if (num1>num2) {
            max=num1;
        }else{
            max=num2;
        }
        
        max+=100;
        System.out.println(max);
        
        
    }
}

  2> if语句实现判断学生等级

package com.lyc.test;

import java.util.Scanner;

public class IfDemo05 {
    public static void main(String[] args) {
        /**
         * 键盘录入学生的考试成绩,根据考试成绩来判断学生属于那个级别
         * 90-100 优秀
         * 80-90     好
         * 70-80     良
         * 60-70   及格
         * 60以下   不及格
         * 如果输入的成绩没在0-100之内,则判断输入错误
         */
        //创建对象
        Scanner sc = new Scanner(System.in);
        //接收数据
        System.out.println("请输入学生的考试成绩:");
        int score =sc.nextInt();
        
        //if语句的第三种格式:
        if(score<0 || score>100){
            System.out.println("你输入的学生成绩是错误的!!!");
        }else if(score>=90 && score<=100){
            System.out.println("成绩属于优秀");
        }else if(score>=80 && score<90){
            System.out.println("成绩属于好");
        }else if(score>=70 && score<80){
            System.out.println("成绩属于良");
        }else if(score>60 && score<70){
            System.out.println("成绩属于及格");
        }else{
            System.out.println("成绩属于不及格");
        }
        
    }
}

switch语句的格式执行流程

 格式解释:

  switch表示这是switch语句

  表达式的取值:byte,short,int,char

  JDK5以后可以是枚举

  JDK7以后可以是String

  case后面跟的是要和表达式进行比较的值

  语句体部分可以是一条或多条语句

  break表示中断,结束的意思,可以结束switch语句

  default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

 执行流程

   首先计算出表达式的值

  其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

  最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

 switch语句执行流程图

 使用swit语句实现根据数字输出对应星期

package com.lyc.test;

import java.util.Scanner;

public class SwitchDemo {

    public static void main(String[] args) {
        /**
         * switch语句格式:
         *     switch(表达式){
         *         case 值1:
         *             语句体1;
         *             break;
         *         case 值2:
         *             语句体1;
         *             break;
         *         ......
         *         default:
         *             语句体n+1;
         *             break;
         *  }
         */
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入一个(1-7)之间的数字:");
        int day = sc.nextInt();
        
        //switch语句实现选择
        switch (day) {
        case 1:
            System.out.println("星期一");
            break;
        case 2:
            System.out.println("星期二");
            break;
        case 3:
            System.out.println("星期三");
            break;
        case 4:
            System.out.println("星期四");
            break;
        case 5:
            System.out.println("星期五");
            break;
        case 6:
            System.out.println("星期六");
            break;
        case 7:
            System.out.println("星期日");
            break;
        default:
            System.out.println("你输入的数字没在范围内");
            break;
        }    
    }
}
原文地址:https://www.cnblogs.com/chao123/p/10229309.html