从零开始的Java学习笔记-Day 2
3. 流程控制
3.1 执行结构
1996 年,计算机科学家 Bohm 和 Jacopini 证明了:任何简单或复杂的算法都可以由顺序结构、分支结构和循环结构这三种基本 结构组合而成。
- 顺序结构
- 顺序结构是一种基本的控制结构,它按照语句出现的顺序执行操作
- 分支结构
- 分支结构又被称为选择结构,根据条件成立与否来执行操作
- 循环结构
- 循环结构是一种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止
3.2 分支结构
3.2.1 if 语句
if 条件结构是根据条件判断之后再做处理
格式:
if (条件语句){…}
if (条件语句){…}else{…}
if (条件语句){…}else if(条件语句){…}
if (条件语句){…}else if(条件语句){…}else{…}
举例:根据金额判断折扣
if(point<2000) {
System.out.println("您的折扣是9折");
}else if(point<4000) {
System.out.println("您的折扣是8折");
}else if(point<8000) {
System.out.println("您的折扣是7.5折");
}else {
System.out.println("您的折扣是7折");
}
3.2.2 switch 语句
格式:
switch(表达式){
case 取值 1: 语句块 1;
break;
case 取值 n: 语句块 n;
break;
default: 语句块 n+1;
break;
}
举例:判断月份的天数
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = (year % 4 == 0 && year % 100 != 0)||year % 400 == 0? 29:28;
break;
}
- 注意–switch 语句有关规则 :
- 表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
- case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的;
- default 子句是可选的;
- break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果 case 后面没有写 break 则直接往下面执行! case 后面的执行体可写{ }也可以不写{ }
3.3 循环结构
循环条件满足情况下,反复执行特定代码
3.3.1 for 循环
格式:
for(初始化参数;判断条件;更新循环变量){
循环体;
}
举例:
// for循环
for (int i = 0;i < 10;i++) {
System.out.println(i);
}
- 注意–(1;2;3)括号当中三段代码的意义
- 1–循环开始时执行一次
- 2–循环进行的条件,boolean值
- 3–每次执行完循环体执行一次
3.3.2 while 循环
格式:
while(条件表达式){
语句块;
}
-
使用步骤:
1、分析循环条件和循环操作
2、套用 while 语法写出代码
3、检查循环是否能够退出
举例:
// while循环
int i = 5;
while(i<5) {
i++;
System.out.println(i);
}
System.out.println("程序结束");
3.3.3 do-while 循环
格式:
do {
循环操作
}while ( 条件表达式 );
- while循环和do/while循环的区别?
- while:先判断条件,如果条件满足,再执行循环操作
- do/while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。
举例:
//do/while循环
int j = 5;
do {
j++;
System.out.println(j);
}while(j<5);
System.out.println("程序结束");
3.3.4 break与continue语句
-
break是用于终止本轮所有次循环。即不执行本次循环中break后面的语句,直接跳出循环。
-
continue是用于终止本轮本次循环。即本次循环中continue后面的代码不执行,进行下一次循环的入口判断。
-
退出多重循环
- 通过xx:的格式给循环起名,再使用break xx的的格式结束循环
3.3.5 循环嵌套图形打印
外层控制行数,内层控制列数
分析内层循环次数和内层循环次数的关系(找规律)
考虑空格
3.3.6 判断用户输入类型
格式:
if(xx.hasNextInt()){
符合类型代码
}else{
不符合类型代码
}