NO.A.0008-day03-flow control statement / if, if else, switch, for

Declaración de control de flujo:

            在一个程序执行过程中,各条件语句的执行顺序的结果会有直接影响的。

1.
Biblioteca de código de estructura de secuencia : Demo01Sequence.java

// 顺序结构
public class Demo01Sequence {
    public static void main(String[] args) {
        System.out.println("今天天气不错");
        System.out.println("挺风和日丽的");
        System.out.println("我们下午没课");
        System.out.println("这的确挺爽的");
    }
}

diagrama de flujo
Inserte la descripción de la imagen aquí

Diagrama de flujo de la estructura de secuencia

En segundo lugar, la sentencia
2.1, el primer formato de la sentencia if:

/*
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

if(关系表达式){
        语句体;
}

Diagrama de flujo de una sola declaración if:
Inserte la descripción de la imagen aquí

Biblioteca de códigos: Demo02If.java

// 单if语句
public class Demo02If {
    public static void main(String[] args) {
        System.out.println("今天天气不错,正在压马路……突然发现一个快乐的地方:网吧");
        int age = 19;
        if (age >= 18) {
            System.out.println("进入网吧,开始high!");
            System.out.println("遇到了一群猪队友,开始骂街。");
            System.out.println("感觉不爽,结账走人。");
        }
        System.out.println("回家吃饭");
    }
}

2.2. Juzgando
el segundo formato de if..else statement if statement: if ...... else

/*
首先判断关系表达式看其结果是true还是false
如果是true就执行与具体1
如果是false 就执行与具体2
*/

if (关系表达式);{
    语句体1;
}else{
    语句体2;
}

Inserte la descripción de la imagen aquí

if ... else diagrama de flujo de la declaración

Base de código: Demo03IfElse.java

// 标准的if-else语句
public class Demo03IfElse {
    public static void main(String[] args) {
        int num = 666;

        if (num % 2 == 0) { // 如果除以2能够余数为0,说明是偶数
            System.out.println("偶数");
        } else {
            System.out.println("奇数");
        }
    }
}

2.3. Sentencia (sentencia if compuesta extendida) El
tercer formato de sentencia if: if .... else if ..... else

/*
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果我是true就执行语句体2
如果是false就继续判断关系表达式....看其结果是true还是false
....
如果没有任何表达式为true,就执行语句体n+1.
*/
if (判断条件1){
    执行语句1;
    }else if(判断条件2){
    执行语句2;
}
...
}else if (判断条件n){
          执行语句n;
          }else{
    执行语句n+1;
}

Inserte la descripción de la imagen aquí

if ... else
base de código de diagrama de flujo extendido : Demo04IfElseExt.java

// x和y的关系满足如下:
// 如果x >= 3,那么y = 2x + 1;
// 如果-1 < x < 3,那么y = 2x;
// 如果x <= -1,那么y = 2x – 1;
public class Demo04IfElseExt {
    public static void main(String[] args) {
        int x = -10;
        int y;
        if (x >= 3) {
            y = 2 * x + 1;
        } else if (-1 < x && x < 3) {
            y = 2 * x;
        } else {
            y = 2 * x - 1;
        }
        System.out.println("结果是:" + y);
    }
}

Caso 1:
Biblioteca de códigos: Demo05IfElsePractise.java

/*
制定考试成绩,判断成绩的等级;
    90-100  优秀
    80-89   好
    70-79   良
    60-69   及格
    60以下    不及格
*/
public class Demo05IfElsePractise {
    public static void main(String[] args) {
        int score = 120;
        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 if (score >= 0 && score < 60) {
            System.out.println("不及格");
        } else { // 单独处理边界之外的不合理情况
            System.out.println("数据错误");
        }
    }
}

2.4. El intercambio de instrucción if y operador ternario:
código base: Demo06Max.java

// 题目:使用三元运算符和标准的if-else语句分别实现:取两个数字当中的最大值
public class Demo06Max {
    public static void main(String[] args) {
        int a = 105;
        int b = 20;

        // 首先使用三元运算符
        // int max = a > b ? a : b;

        // 使用今天的if语句
        int max;
        if (a > b) {
            max = a;
        } else {
            max = b;
        }

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

Tres, declaración de selección de conmutador:
3.1, estructura de selección _ declaración de conmutación estándar

// switch 语句格式
/*
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,入到break就会结束
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
*/

switch(表达式){
    case 常量值1:
        语句体1;
        break;
    case 常量值2:
        语句体2;
        break;
        ...
        default:
        语句体n+1;
        break;
}

Inserte la descripción de la imagen aquí

Base de código: Demo07Switch.java

public class Demo07Switch {
    public static void main(String[] args) {
        int num = 10;

        switch (num) {
            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; // 最后一个break语句可以省略,但是强烈推荐不要省略
        }
    }
}

3.2. Penetración de
casos : código base: Demo08SwitchNotice.java

/*
switch语句使用的注意事项:

1. 多个case后面的数值不可以重复。

2. switch后面小括号当中只能是下列数据类型:
基本数据类型:byte/short/char/int
引用数据类型:String字符串、enum枚举

3. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
“匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”
*/
public class Demo08SwitchNotice {
    public static void main(String[] args) {
        int num = 2;
        switch (num) {
            case 1:
                System.out.println("你好");
                break;
            case 2:
                System.out.println("我好");
                // break;
            case 3:
                System.out.println("大家好");
                break;
            default:
                System.out.println("他好,我也好。");
                break;
        } // switch
    }
}

Cuatro, declaración de bucle,
4.1, para la
biblioteca de código de bucle : Demo09For.java

/*
循环结构的基本组成部分,一般可以分成四部分:

1. 初始化语句:在循环开始最初执行,而且只做唯一一次。
2. 条件判断:如果成立,则循环继续;如果不成立,则循环退出。
3. 循环体:重复要做的事情内容,若干行语句。
4. 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。
*/
public class Demo09For {
    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            System.out.println("我错啦!原谅我吧!" + i);
        }
        System.out.println("程序停止");
    }
}
/* for循环语句格式:
for (初始化表达式1;布尔表表达式2,步进表达式3){
    循环体4
}

执行流程:
        执行顺序:1234>234>234....2不满足位置。
        1负责完成循环变量初始化
        2负责判断满足循环条件,不满足则跳出循环
        3具体执行的语句
        4循环后,循环条件所涉及变量的变化情况
*/

Inserte la descripción de la imagen aquí

Inicial para bucle Figura
4.2,
biblioteca de código de bucle while : Demo10While.java

/*
while循环有一个标准格式,还有一个扩展格式。

标准格式:
while (条件判断) {
    循环体
}

扩展格式:

初始化语句;
while (条件判断) {
    循环体;
    步进语句;
}
*/
public class Demo10While {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println("我错啦!" + i);
        }
        System.out.println("=================");

        int i = 1; // 1. 初始化语句
        while (i <= 10) { // 2. 条件判断
            System.out.println("我错啦!" + i); // 3. 循环体
            i++; // 4. 步进语句
        }
    }
}

Inserte la descripción de la imagen aquí

Formato estándar
4.3 del bucle while: declaración del bucle do while:
Biblioteca de código: Demo11DoWhile.java

/*
do-while循环的标准格式:

do {
    循环体
} while (条件判断);

扩展格式:

初始化语句
do {
    循环体
    步进语句
} while (条件判断);
*/
public class Demo11DoWhile {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println("原谅你啦!起来吧!地上怪凉!" + i);
        }
        System.out.println("===============");

        int i = 1; // 1. 初始化语句
        do {
            System.out.println("原谅你啦!起来吧!地上怪凉!" + i); // 3. 循环体
            i++; // 4. 步进语句
        } while (i <= 10); // 2. 条件判断
    }
}

Inserte la descripción de la imagen aquí

hacer mientras diagrama de estructura de bucle

Ejemplo 1:
Biblioteca de código: Demo12HundredSum.java

/*
题目:求出1-100之间的偶数和。

思路:
1. 既然范围已经确定了是1到100之间,那么我就从1、2、3……一直到100这么多数字一个一个进行检查。
2. 总共有100个数字,并非所有数字都能用。必须要是偶数才能用,判断(if语句)偶数:num % 2 == 0
3. 需要一个变量,用来进行累加操作。也就好比是一个存钱罐。
*/
public class Demo12HundredSum {
    public static void main(String[] args) {
        int sum = 0; // 用来累加的存钱罐

        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) { // 如果是偶数
                sum += i;
            }
        }
        System.out.println("结果是:" + sum);
    }
}       //结果是:2550

4.4. La diferencia entre los tres bucles de do, for y while.
Código base: Demo13LoopDifference.java

/*
三种循环的区别。

1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
2. for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就
在外面,所以出来循环之后还可以继续使用。
*/
public class Demo13LoopDifference {
    public static void main(String[] args) {
        for (int i = 1; i < 0; i++) {
            System.out.println("Hello");
        }
        // System.out.println(i); // 这一行是错误写法!因为变量i定义在for循环小括号内,只有for
        循环自己才能用。
        System.out.println("================");

        int i = 1;
        do {
            System.out.println("World");
            i++;
        } while (i < 0);
        // 现在已经超出了do-while循环的范围,我们仍然可以使用变量i
        System.out.println(i); // 2
    }
}

4.5. Declaración de control condicional: declaración de salto: romper continuar
romper
código base: Demo14Break.java

/*
break关键字的用法有常见的两种:

1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
2. 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。

关于循环的选择,有一个小建议:
凡是次数确定的场景多用for循环;否则多用while循环。
*/
public class Demo14Break {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            // 如果希望从第4次开始,后续全都不要了,就要打断循环
            if (i == 4) { // 如果当前是第4次
                break; // 那么就打断整个循环
            }
            System.out.println("Hello" + i);
        }
    }
}

Una vez que se ejecuta continuar, el ciclo actual se omitirá inmediatamente y el siguiente ciclo comenzará inmediatamente.
Biblioteca de códigos: Demo15Continue.java

/*
另一种循环控制语句是continue关键字。
一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
*/
public class Demo15Continue {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 4) { // 如果当前是第4层
                continue; // 那么跳过当前次循环,马上开始下一次(第5层)
            }
            System.out.println(i + "层到了。");
        }
    }
}

5. Conocimiento extendido:
5.1.
Base de código de bucle muerto : Demo16DeadLoop.java

/*
永远停不下来的循环,叫做死循环。

死循环的标准格式:
while (true) {
    循环体
}
*/
public class Demo16DeadLoop {
    public static void main(String[] args) {
        while (true) {
            System.out.println("I Love Java!");
        }

        // System.out.println("Hello");     //Ctrl+c    停止下来
    }
}

5.2.
Biblioteca de código anidado en bucle : Demo17LoopHourAndMinute.java

public class Demo17LoopHourAndMinute {
    public static void main(String[] args) {
        for (int hour = 0; hour < 24; hour++) { // 外层控制小时

            for (int minute = 0; minute < 60; minute++) { // 内层控制小时之内的分钟
                System.out.println(hour + "点" + minute + "分");
            }

        }
    }
}

Supongo que te gusta

Origin blog.51cto.com/15005403/2552546
Recomendado
Clasificación