04.选择语句与循环语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04.选择语句与循环语句相关的知识,希望对你有一定的参考价值。

 一、键盘录入数据

源码程序:

/*
为了是程序更灵活,引入键盘录入模块
    如何实现键盘录入?
        A:导包
            格式:
                import java.util.Scanner
        B:创建键盘录入对象
            格式:
                Scanner sc = new Scanner(System.in)
        C:通过对象获取数据
            格式:
                int x = sc.nextInt()
*/

import java.util.Scanner;
class ScannerDemo {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入一个整数:");
        int x = sc.nextInt();
        System.out.println("你输入的数据是:"+x);
    }
}

运行结果:

技术分享

 二、流程控制语句

  • 顺序结构
  • 选择结构
  • 循环结构

  1.Java提供了两种选择结构语句:

  • if 语句
  • switch 语句

if 语句的三种格式:

格式1: 

/*
        
    if语句的格式:
        if(比较表达式) {
            语句体;
        }
        
        执行流程:
            先计算比较表达式的值,看其返回值是true还是false。
            如果是true,就执行语句体;
            如果是false,就不执行语句体;
*/

举例说明:

class IfDemo {
    public static void main(String[] args) {
        int x = 10;
        
        if(x == 10) {
            System.out.println("x等于10");
        }
        
        if(x == 20) {
            System.out.println("x等于20");
        }
        
        System.out.println("over");
    }
} 

格式2:

/*
    if语句格式2:
        if(比较表达式) {
            语句体1;
        }else {
            语句体2;
        }
    执行流程:
        首先计算比较表达式的值,看其返回值是true还是false。
        如果是true,就执行语句体1;
        如果是false,就执行语句体2;
        
    注意:else后面是没有比较表达式的,只有if后面有。
*/

举例说明:

class IfDemo {
    public static void main(String[] args) {
        //判断两个数据是否相等
        
        int a = 10;
        int b = 20;
        
        if(a == b) {
            System.out.println("a等于b");
        }else {
            System.out.println("a不等于b");
        }
    }
}

格式3:

/*
    if语句的格式3:
        if(比较表达式1) {
            语句体1;
        }else if(比较表达式2) {
            语句体2;
        }else if(比较表达式3) {
            语句体3;
        }
        ...
        else {
            语句体n+1;
        }
        
    执行流程:
        首先计算比较表达式1看其返回值是true还是false,
        如果是true,就执行语句体1,if语句结束。
        如果是false,接着计算比较表达式2看其返回值是true还是false,
        
        如果是true,就执行语句体2,if语句结束。
        如果是false,接着计算比较表达式3看其返回值是true还是false,
        ...
        
        如果都是false,就执行语句体n+1。
*/

举例说明:

//需求:键盘录入一个成绩,判断并输出成绩的等级。
        /*
            90-100 优秀
            80-90  好
            70-80  良
            60-70  及格
            0-60   不及格
        */
import java.util.Scanner;

class IfDemo {
    public static void main(String[] args){
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        //录入数据
        System.out.println("你输入的成绩是:");
        int x = sc.nextInt();
        
        if(x>=90 && x<=100) {
            System.out.println("优秀");
        }else if(x>=80 && x<90) {
            System.out.println("好");
        }else if(x>=70 && x<80) {
            System.out.println("良");
        }else if(x>=60 && x<70) {
            System.out.println("及格");
        }else if(x>=0 && x<60) {
            System.out.println("不及格");
        }else {
            System.out.println("你输入成绩有误!");
        }
    }
}

运行结果:

技术分享

 

switch 语句

/*
    switch语句格式:
        switch(表达式) {
            case 值1:
                语句体1;
                break;
            case 值2:
                语句体2;
                break;
            ...
            default:
                语句体n+1;
                break;
        }
        
    switch语句的注意事项:
        A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
*/
import java.util.Scanner;

class SwitchDemo {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        
        //控制键盘录入数据
        System.out.println("请输入一个数据(1-7):");
        int week = sc.nextInt(); //3
        
        //定义常量
        //int number = 3;
        //然后把case后面的值改为number,就会报错
        
        //switch判断语句
        switch(week) {
            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;
        }
    }
}

 

 

  2.Java提供了三种循环结构语句:

  • for 循环语句
  • while 循环语句
  • do...while循环语句

for 循环语句举例说明:

/*
    循环语句:for循环,while循环,do...while循环。
    
    for循环格式:
        for(初始化语句;判断条件语句;控制条件语句) {
            循环体语句;
        }
        
        执行流程:
            A:执行初始化语句
            B:执行判断条件语句,看其返回值是true还是false
                如果是true,就继续执行
                如果是false,就结束循环
            C:执行循环体语句;
            D:执行控制条件语句
            E:回到B继续。
            
    注意事项:
        A:判断条件语句无论简单还是复杂结果是boolean类型。
        B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
        C:一般来说:有左大括号就没有分号,有分号就没有左大括号
            
    需求:请在控制台输出10次"HelloWorld"
*/
class ForDemo {
    public static void main(String[] args) {
        //最原始的做法
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("----------");
        
        //这种做法不好,代码的重复度太高。
        //所以呢,我们用循环改进
        for(int x=1;x<=10;x++) {
            System.out.println("HelloWorld");
        }
    }
}

 

 

while循环语句举例说明:

/*
    while循环的基本格式:
        while(判断条件语句) {
            循环体语句;
        }
        
        扩展格式:
        
        初始化语句;
        while(判断条件语句) {
             循环体语句;
             控制条件语句;
        }
        
        通过这个格式,我们就可以看到其实和for循环是差不多的。
        
        for(初始化语句;判断条件语句;控制条件语句) {
            循环体语句;
        }
*/
class WhileDemo {
    public static void main(String[] args) {
        //输出10次"HelloWorld"
        //for语句版
        for(int x=0; x<10; x++) {
            System.out.println("HelloWorld");
        }
        System.out.println("--------------");
        //while语句版
        int x=0;
        while(x<10) {
            System.out.println("HelloWorld");
            x++;
        }
        
    }
}

 

总结:上诉代码可以看出for循环和while循环之间可以进行自由的切换

do...while循环语句举例说明:

/*
    do...while循环的基本格式:
        do {
            循环体语句;
        }while(判断条件语句);
        
        扩展格式;
        初始化语句;
        do {
            循环体语句;
            控制条件语句;
        }while(判断条件语句);
*/
class DoWhileDemo {
    public static void main(String[] args) {
        //输出10次HelloWorld。
        int x = 0;
        do {
            System.out.println("HelloWorld");
            x++;
        }while(x<10);
        
        System.out.println("--------------");
        
        //求和1-100
        int sum = 0;
        int a = 1;
        do {
            sum += a;
            a++;
        }while(a<=100);
        
        System.out.println(sum);
    }
}

 

总结:do...while 和while的区别,以及与for循环之间的自由切换

/*
    循环语句的区别:
        do...while循环至少执行一次循环体。
        而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
        
    那么,我们一般使用哪种循环呢?
        优先考虑for,其次考虑while,最后考虑do...while
*/

 

三、跳转语句

  • break(跳出单层循环)
  • continue(跳出一次循环,进入下次循环)
  • return(结束整个方法)

举例说明:

 

以上是关于04.选择语句与循环语句的主要内容,如果未能解决你的问题,请参考以下文章

shell if 语句

循环与选择

Shell脚本入门 05:选择与循环语句

Shell脚本入门 05:选择与循环语句

循环选择要注意的复合语句

C语言分支语句与循环语句