# 流程控制

顺序结构:从上到下从左到右

# 分支结构

判断结构

if(逻辑值){

Code;

}

执行顺序:先执行逻辑值,如果为true,则执行代码块;如果为false,则直接跳过不执行

if(逻辑值){

Code1;

} else {

Code2;

}

执行顺序:先执行逻辑值,如果为true,则执行代码块1;反之,执行代码块2

if-else-if --- 都可以用if-else结构嵌套来替代,但是if-else-if结构形式更加简洁

选择结构

switch(数据){

case "abc": ...;break;

case "def":...;break;

}

case之后的选项支持byte/short/int/char,从jdk1.7开始支持String

练习:输入两个数字和一个符号(+ - * /),然后根据输入的符号对数字进行运算

3 / 8 = 0.375

break用于终止当前的switch的执行。如果case之后没有break,继续往下执行,直到遇到break或者执行到swithc的末尾

如果每一个case之后都有break,case之间的顺序不影响结果的。如果有一个或者多个case之后没有break,那么这个时候case之间的顺序影响结果

练习:输入一个数字表示月份,第二个数字表示天数,然后输出这一天是这一年的第几天(不考虑闰年)

# 循环结构

用于重复做一些相同或者相似的事儿

while(逻辑值){

Code;

}

{width="3.0416666666666665in" height="2.439583333333333in"}

练习:

  1. 求1-100之间的所有偶数的和

  2. 求300以内的能被3整除而不能被7整除的数

  3. 输入一个数字,输出这个数字是一个几位数 7684852 -> 7

  4. 输入一个数字,判断这个数字是否是一个质数 --- 除了1和本身以外,不能被其他的数字整除

    break也可以用在循环中表示中止循环

    do{

    Code;

    }while(logical);

    {width="2.71875in" height="1.7659722222222223in"}

    即使判断条件不满足,代码块依然会执行一次

    循环的要素:变量控制次数;判断条件;变量值的变化

# for循环

for(定义的变量; 判断条件; 变量值的变化){

代码块;

}

while循环和for循环实际上可以相互转换的。但是实际使用中,如果遇到了变化不规律或者次数不固定的场景,那么这个时候一般是使用while循环;如果变化比较规律或者次数比较固定,使用for循环

// 从控制台获取一个大于10的偶数

Scanner s = new Scanner(System.in);

int n = s.nextInt();

while(n < 10 || n % 2 == 1){

n = s.nextInt();

}

/* 可以用for循环来做,但是for循环的格式比较奇怪

for( ; n < 10 || n % 2 == 1; n = s.nextInt()){

}

*/

循环的嵌套

# break和continue

break可以用于选择结构和循环结构。表示中止当前的一层结构

continue只能用于循环结构。表示跳过当前一次循环,继续下次循环

注意:break和continue支持标号形式

思考:用一个循环实现九九乘法表

Last Updated: 11/18/2022, 10:55:14 AM