一、键盘录入(目前只需掌握如何使用)
1.键盘录入数据概述
我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。

2.实现键盘录入

a:导包 import java.util.Scanner;
b:创建键盘录入对象 Scanner sc = new Scanner(System.in);
c:调用方法接收键盘录入的数据
    sc.nextInt() 接收一个int类型的数据;
    sc.next() 接收一个字符串;
    sc.nextdouble()

3.举例使用 Scanner 类,完成接收键盘录入数据的操作

public static void maxTest() {
    //键盘输入三个数字 求最大值
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个数字:");
    int a = sc.nextInt();
    System.out.println("请输入二个数字:");
    int b = sc.nextInt();
    System.out.println("请输入三个数字:");
    int c = sc.nextInt();

    //获取最大值
    int temp = (a > b ? a : b);
    int max = (temp > c ? temp : c);

    System.out.println("最大值为:" + max);
}

二、控制语句

A:顺序结构  自上而下的顺序执行
package com.shujia.wxl.day04;

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

        总的来说,写在前面的先执行,写在后面的后执行。

 */
public class SequenceDemo1 {
    public static void main(String[] args) {
        System.out.println("这是第 1 行语句");
        System.out.println("这是第 2 行语句");
        System.out.println("这是第 3 行语句");
        System.out.println("这是第 4 行语句");
        System.out.println("这是第 5 行语句");
    }
}
B:选择结构
    if选择
        a:第一种格式:
            if(关系表达式){
                语句体;
            }
        
        b:第二种格式:
            if(关系表达式){
                语句体1;
            }else{
                语句体2;
            }
        
        c: 第三种格式:
            if(关系表达式1){
                语句体1;
            }else if(关系表达式2){
                语句体2;
            }else if(关系表达式3){
                语句体3;
            }else if(关系表达式4){
                语句体4;
            }else if(关系表达式5){
                语句体5;
            }
            ...
            else{
                语句体n+1;
            }
           switch选择
        语句格式:(表达式中可以存放byte,short,int,char,JDK1.5可以放枚举类型,JDK1.7之后可以放字符串)
            switch(表达式){
                case 常量值1:
                        语句体1;
                        break;
                case 常量值2:
                        语句体2;
                        break;
                ...
                default:
                       语句体n;
                        break;
            }
package com.shujia.wxl.day04;

/*
        注释的快捷键:ctrl+/

        根据键盘录入的数值1,2,3,…7输出对应的星期一,星期二,星期三…星期日。

        注意事项:
            1、break可以不写吗?可以,但是会发生”穿透“
            2、default可以不写吗?可以,但是不建议,代码不够严谨,什么情况下可以不写,当只有固定的几个值的时候,可以不写
            3、default可以写在最前面吗?如果可以,会发生什么情况?
                可以。
                (1)default的执行顺序与它在switch中的位置无关。
                (2)当default的顺序与break省略同时出现的时候,出来的结果可能不是你想要的。
            4、多个case后面的常量值,不能一样


 */
import java.util.Scanner;
public class SwitchDemo2 {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个数据(1-7)");
        int number = sc.nextInt();
        switch (number){
            default:
                System.out.println("输入的数据有误");
//                break;
            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;
        }


    }
}

C:循环结构

a. for循环
          语句格式:  
            for(初始化语句;判断条件语句;控制条件语句){
                循环体语句;
            }
package com.shujia.wxl.day04;
/*
            1、请在控制台输出数据1-10
            2、请在控制台输出数据10-1
 */
public class ForTest1 {
    public static void main(String[] args) {
        System.out.println("输出1-10");
        for(int i = 1 ;i<11;i++){
            System.out.println(i);
        }
        System.out.println("输出10-1");

        for(int i=10;i>10;i--){
            System.out.println(i);
        }
    }
}
b.while循环
           一般情况,不清楚循环次数的时候,使用while循环
         语句定义格式:
          初始化语句;`
          while(判断条件语句){
                    循环体内容;
                   控制条件语句;
        }
可以和for循环做等价转换
public class WhileDemo1 {
    public static void main(String[] args) {
        System.out.println("========for循环打印10句HelloWorld===========");
        for (int i = 1; i <= 10; i++) {
            System.out.println("HelloWorld");
        }

        System.out.println("=======while循环打印10句HelloWorld=============");
        /*
                初始化语句:int i=1;
                判断条件语句:i<=10;
                循环体语句:System.out.println("HelloWorld");
                控制条件语句:i++;
         */
        int i = 1;
        while (i<=10){
            System.out.println("HelloWorld");
            i++;
        }

    }
}
package com.shujia.wxl.day05;

/*
        while循环与for循环的区别?
            1、他们之间虽然可以做等价转换,但是开发中如果遇到在一个范围内做循环的时候,优先使用for循环
            2、当循环的次数不确定的时候,优先使用while循环,举例:喝水,吃葡萄
            作用域带来的区别:
            3、for循环结束后,初始化语句中的变量在外部无法访问
            4、while循环结束后,初始化语句中的变量还能继续使用
 */
public class WhileDemo3 {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum = sum + i;
        }
        System.out.println(sum);
//        System.out.println(i);

        int sum2 = 0;
        int j = 1;
        while (j <= 100) {
            sum2 = sum2 + j;
            j++;
        }
        System.out.println(sum2);
        System.out.println(j);

    }
}
c.do...while循环
      语句定义格式: 
        初始化语句;
    do{
        循环体语句;
        控制条件语句;
    }while(判断条件语句)
package com.shujia.wxl.day05;

/*
        while循环的第二种格式:do...while循环
                    基本格式
                        do {
                            循环体语句;
                        }while((判断条件语句);
                    扩展格式
                        初始化语句;
                        do {
                            循环体语句;
                            控制条件语句;
                        } while(判断条件语句);

        while循环与do...while循环的区别?
            while循环先进行判断条件,看看是不是true,如果是true再执行循环体内容
            而do...while循环会先执行一遍循环体内容,然后再去判断条件,看看是不是true,如果是true,继续执行。

 */
public class DoWhileDemo1 {
    public static void main(String[] args) {
        int x = 3;
        while (x<3){
            System.out.println("HelloWorld");
        }

        System.out.println("========do...while循环=============");
        do{
            System.out.println("HelloWorld");
        }while (x<3);

        System.out.println("=========while死循环===================");
        boolean flag = true;
        while (flag){
            System.out.println("HelloWorld");
        }


    }
}

面试题:do…while循环与while循环的区别?
1、do…while循环会先执行一次循环体内容,然后再进行判断是否进循环。
2、while循环是先执行判断条件语句,是true的时候,才会执行循环体内容。

d. 双重for循环:
外层for循环控制行,内层for循环控制列。自己尝试着打印九九乘法表

e. 控制条件语句:
break; 使用在switch语句和循环语句中
    break跳出多层循环的使用,带标签的跳出。
continue; 只能使用在循环语句中
return; 相当于结束了main方法,学完方法后,return作为定义方法的最后一句,
表示方法结束返回值给调用者。