03分支和循环结构

分支和循环

</ hr>

1.分支结构
1.1 if 结构
if (/* 判断语句 true false */) {
    // 语句体
}
/*
    执行流程:
        当程序运行到if结构时,首先判断if之后的小括号里边的判断语句是否为true,如果为true,执行语句体,如果为false,执行大括号以外的内容。
*/
1.2 if - else 结构
if (/* 判断语句 true false */) {
    // true语句体
} else {
    // false语句体
}
/*
    执行流程:
        当程序运行到if - else结构时,首先判断if之后的小括号里边的判断语句结果是什么,如果为true,执行true语句体,如果为false,执行false语句体。
        世界上最遥远的距离是你在if里我在else里
*/
1.3 if - else if 结构
if (/* 条件匹配 1 */) {
    // 处理方式1
} else if (/* 条件匹配 2 */) {
    // 处理方式2
} else if (/* 条件匹配 3 */) {
    // 处理方式3
} else {
    // 没有任何匹配情况下的最终处理方式
}
/*
    执行流程:
        当程序运行到if - else if结构时,匹配if之后的条件,执行对应的处理方式,如果没有任何一个条件匹配,执行else里边的处理方式
学生成绩:
    90 ~ 100 优秀
    80 ~ 90 良好
    70 ~ 80 中等
    60 ~ 70 及格
    60以下 不及格
    
    if (score >= 90) {
        System.out.println("你的成绩等级为:优秀");
    } else if (score >= 80) {
        System.out.println("你的成绩等级为:良好");
    } else if (score >= 70) {
        System.out.println("你的成绩等级为:中等");
    } else if (score >= 60) {
        System.out.println("你的成绩等级为:及格");
    } else {
        System.out.println("你的成绩等级为:不及格");
    }
*/
1.4 switch - case
switch (/* 条件匹配 */) {
    case /* 常量1 */:
        /* 处理方式1 */
        break;
    case /* 常量2 */:
        /* 处理方式2 */
        break;
    case /* 常量3 */:
        /* 处理方式3 */
        break;
    default:
        /* 最终处理方式 */
        break;
}
/*
执行流程:
    当程序运行到switch - case 结构,使用switch之后小括号中的变量,匹配case之后的【常量】,找到对应的数据,按照对应的处理方式进行,如果没有任何一个条件匹配,执行default里边的处理方式
    
注意事项;
    1. case 选择不能出现重复内容
    2. break可以省略,代码会继续执行到下一个break或者switch - case 大括号
    3. default可以省略,如果不需要可以不写default结构
*/
2.循环结构
2.1为什么使用循环
在代码中,出现了大量的重复功能,使用CV大法可以解决,但是会导致以下问题:
    1. 代码过于臃肿!!!
    2. 代码阅读性极差!!!
    3. 代码的维护性极差!!!
2.2 while 循环
while (/* 循环条件判断 */) {
    // 循环体
    // (循环条件变更)
}
/*
执行流程;
    代码执行到while循环结构时,首先判断while之后的循环条件是否为true,如果为true执行循环体(带有循环条件变更),知道while之后的条件为false,终止循环!!
    
在DOS窗口中终止循环的方式  Ctrl + C
*/
2.3 do - while 循环
do {
    // 循环体
    // 循环条件变更
} while (/* 循环条件判断 */);
/*
执行流程;
    代码执行到do-while循环结构时,首先执行循环体(循环变更条件),再来判断while 之后的循环条件,如果循环条件为true,继续循环,直到条件为false,终止循环!!!
*/
2.4 while和do - while
    while循环执行每一次循环体,都是在循环条件下执行的,而 do - while 第一次执行循环体,是没有任何的约束的。
    所以,如果在开发中可以使用也可以使用do-while时,建议尽量使用while循环
2.5 for循环
for (/*循环初始化条件*/;/*循环条件判断*/;/*循环条件变更*/) {
    // 循环体
}

for循环使用案例
    import java.util.Scanner;
class Demo6{
    public static void main(String[] args){
        // 1. 展示100以内的所有偶数
        /*
            1. 循环执行多少次? 101
            2. 判断执行多少次? 101
        */
        for (int i = 0; i <= 100; i++) {
            if (i % 2 == 0) {
                System.out.println(i);
            }
        }
        
        /*
            1. 循环执行多少次? 51
            节约了75%
        */
        for (int j = 0; j <= 100; j += 2) {
            System.out.println(j);
        }
        
        // 2. 逢7过!!!
        /*
            7的倍数
                num % 7 == 0
            带7的数
                个位是7
                    17 ÷ 10 = 1 ... 7
                    num % 10 == 7 
                十位是7
                    70 / 10 = 7
                    num / 10 = 7
        */
        for (int sun = 0; num <= 100; num++) {
            if (num % 7 == 0 || num % 10 == 7 || num /10 = 7){
                System.out.println("过");
            } else {
                System.out.println(sum);
            }
        }
        
        /*
            3. 例如:
                输入 5 8
                计算 5 + 6 + 7 + 8
                输出 26
        */
        int sum = 0;
        int num1 = 0;
        int num2 = 0;
        Sanner sc = new Scanner(System.in);
        
        System.out.println("请输入两个整数");
        num1 = sc.nextInt();
        num2 = sc.nextInt();
        
        //判断用户输入的数据到底是哪一个数值大,使用交换保证num2的值是大于num1的值
        if  (num1 > num2) {
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }
        
        for (int i = num1; i <= num2; i++) {
            sum + = i;
        }
    }
}
【补充知识点】

Scanner的使用

代码中需要用户修改数据,从而满足其他需求,但是我们不能要求用户修改代码,重新编译,重新执行!需要在代码中提供一个让用户输入数据的方式:

1. 点技能点!!!【导包】
在class之前
    import java.util.Scanner;
2. 创建一个Scannner的“变量”
    Scanner sc = new Scanner(System.in);
3. 使用Scanner扫描器中的一些方法,从键盘上获取用户输入的数据
        获取int类型数据 int num = sc.nextInt();
        获取float类型数据 float num = sc.nextFloat();
        获取double类型数据 double num = sc.nextDouble();
        获取char类型数据 char num = sc.nextLine().charAt(0);

用户友好型考虑

提示用户属兔数据,提供用户下一步应该做什么事情!!!

用户输入数据的合法性判断

程序的运行需要正确的数据,如果用户输入的数据时不合法,我们需要告知用户,重新输入!!
使用 if 语句

猜你喜欢

转载自www.cnblogs.com/zhuangyunliang/p/12324224.html