流程控制
一,分支结构
关键字:if、else
1.1 单 if 结构
格式:
if(条件表达式){ 语句 }
逻辑:判断条件表达式的结果,结果为true,执行代码块中的语句;反之,不执行
1.2 标准的 if - else 结构
格式:
if(条件表达式){ 语句1 }else{ 语句2 }
逻辑:判断条件表达式的结果,结果为true,执行 if 代码块中的语句;反之,执行 else 代码块中的语句
1.3 多条件的 if-else 结构
格式:
if(条件表达式1){ 语句1 }else if(条件表达式2){ 语句2 }else if(条件表达式3){ 语句3 } ...
逻辑:依次判断每一个条件表达式,当有一个条件表达式的结果为true时,执行相应代码块,其他的条件表达式不再判断。
if(条件表达式1){ 语句1 }else if(条件表达式2){ 语句2 }else if(条件表达式3){ 语句3 } ... else{ 语句n }
逻辑:依次判断每一个条件表达式,当有一个条件表达式的结果为true时,执行相应代码块,其他的条件表达式不再判断,如果没有任何一个条件表达式的结果为true,就执行最后一个else代码块中的语句n
1.4 嵌套的 if-else 结构
double score = 50; if(score >= 0 && score <= 100){ if(score >= 90){ System.out.println("A"); }else if(score >= 80){ System.out.println("B"); }else if(score >= 70){ System.out.println("C"); }else if(score >= 60){ System.out.println("D"); }else{ System.out.println("E"); } }else{ System.out.println("成绩有误"); }
逻辑:只有外层的条件满足了,才会进入内层结构
注:
- 如果if或者else所对应的代码块中只有一条语句,那么大括号可以省略
- else 不能单独使用
二,选择结构
关键字:switch、case、break、default
格式:
switch(表达式){ case 值1: 语句1 break; case 值2: 语句2 break; case 值3: 语句3 break; ... default: 语句n break; }
逻辑:将表达式的结果与每一个case后的值进行比较,当某一个case后值与表达式的结果相同值,执行相应代码,如果没有任何一个case后的值与表达式的结果相同值,则执行default中的代码
注:
- 表达式结果的类型必须和case后值的类型一致
- 每一个case后的值必须是唯一的
- case和default的顺序是任意的
- default不是必需的
- 表达式结果的类型只能是:byte、short、int、char、String
break:当程序运行到break关键字时,会跳出当前的整个switch-case
删除break后,switch-case结构会具有穿透性
三,循环结构
循环必须具备的4个要素:
- 条件表达式
- 循环体
- 初始化的值
- 步进表达式
3.1 while
格式:
while(条件表达式){ 循环体 }
逻辑:判断条件表达式的结果,如果是true,执行循环体,再次判断条件,直到条件表达式的结果为false,结束循环。
3.2 do-while
格式:
do{ 循环体 }while(条件表达式);
逻辑:先执行一次循环体,再判断条件表达式,如果是true,执行循环体,再次判断条件,直到条件表达式的结果为false,结束循环。
3.3 for
格式:
for(1初始化;2条件表达式;3步进表达式){ 4循环体 }
执行流程:1243243243…2
3.4 break 和 continue
break:可以用在switch-case和循环 中,用于
跳出
整个结构continue:只能用在循环中,用于
跳过
当前这次循环,继续下一次循环
3.5 死循环
概念:死循环就是无限循环
格式:
while(true){ }
do{ }while(true);
for(;;){ }
3.6 循环嵌套
补,Random、Scanner
1. Random
概念:Random是系统提供了一个专门用于获取随机数的一个类,在这个类中提供了一些获取随机数的方法
使用步骤:
创建对象
Random r = new random();
调用方法
int num1 = r.nextInt();// 随机一个int范围内的数 int num2 = r.nextInt(10);// 随机一个[0,10)范围内的数 double num3 = r.nextDouble();// 随机一个[0.0,1.0)
注:随机 [a,b] 可以写成:
r.nextInt(b-a+1)+a
2. Scanner
概念:Scanner是系统提供的一个专门用于接收键盘输入的类
使用步骤:
创建对象
Scanner sc = new Scanner(System.in);
调用方法
int num1 = sc.nextInt();//接收键盘输入int值 double num2 = sc.nextDouble();//接收键盘输入double值 String str1 = sc.next();//接收键盘输入的字符串 String str2 = sc.nextLine();//接收键盘输入的字符串
注:
- 必须保证输入的类型与调用方法所能接收的类型一致,否则会发生InputMismatchException
- next():不能接收空白字符
- nextLine():可以接收空白字符