今日任务

今日知识.png
流程控制
顺序结构:程序进入主方法之后依次执行里面的代码。
选择结构:if switch
循环结构:while do-while for
选择结构
if
单分支
重点:
语法结构:
if(表达式.boolean值){
执行语句;
}
执行顺序:
1:判定表达式的值,如果表达式的值位true执行对应的执行语句
2:表达式值是false 整个if语句都不执行
注意事项:
当if分支中存在单条语句时可以省略大括号。
当整个if的表达式无论真假,执行之后都会执行后续代码
以后多大数的逻辑不单单只有两种情况,有待加强。
单分支结构永远只能保证一种情况下会做什么操作。
双分支
重点:
语法结构:
if(boolean值表达式){
执行语句1;
}else{
执行语句2;
}
执行顺序:
1:判定表达式的结果,如果表达式的结果是true
执行对应的执行语句1
2:如果表达式的结果是false 那么执行对应的执行语句2
注意事项:
可以省略大括号 保证执行语句只有一行即可
整个判定结果结束执行,执行语句执行之后
继续执行后续代码
多分支
重点
语法结构:
if(表达式1){
执行语句1;
}else if(表达式2){
执行语句2;
}else if(表达式3){
执行语句3;
}else if(表达式4){
执行语句4;
}................{
}else{
执行语句n;
}
执行顺序:
1:判定表达式的结果,如果表达式的结果是true
执行对应的执行语句。整个多分支结果执行结束。
2:依次判定后续的else if,只要有一个判定结果是true
那么整个多分支结束。
3:如果所有的判定条件都为假,执行最后的else内容。
代码例子
输入成绩,显示成绩所在的等级
1. import java.util.Scanner;
2. public class Demo11{
3. public static void main(String[] args){
4. System.out.println("请输入一个成绩");
5. Scanner input = new Scanner(System.in);
6. int score=input.nextInt();
7. if(score>100){
8. System.out.println("请输入合法成绩");
9. }else if(score>=90){
10. System.out.println("这是A");
11. }else if(score>=80){
12. System.out.println("这是B");
13. }else if(score>=70){
14. System.out.println("这是C");
15. }else if(score>=60){
16. System.out.println("这是D");
17. }else{
18. System.out.println("这是E");
19. }
20. }
21. }
switch
重点
语法结构:
switch(表达式){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
case 值3:
执行语句3;
break;
.......
default:
执行语句3;
}
执行顺序:
首先计算switch中的表达式的值然后依次匹配对应的
case,如果匹配成功,执行对应的执行语句
这里注意要通过break防止穿透
如果所有的case都不匹配执行最后的default
注意事项:
1:防止case穿透
2: 利用case穿透做些文章
3: 将没有罗列出来的情况通过default去编写
4: switch只能做等值判定 if可以做区间判定
5: default位置可以任意 一般放到最后
6: switch表达式值不能是long float double boolean 类型
jdk1.5之后允许switch中存放枚举类型enum
jdl1.7之后允许switch中存放String类型
保证case也是String类型
代码示例
用户输入月份,显示该月份的季节
import java.util.Scanner;
public class Demo09{
public static void main(String[] args){
System.out.println("请输入一个月份");
Scanner input = new Scanner(System.in);
int month=input.nextInt();
switch(month){
case 3:
case 4:
case 5:
System.out.println("这是春天");
break;
case 6:
case 7:
case 8:
System.out.println("这是夏天");
break;
case 9:
case 10:
case 11:
System.out.println("这是秋天");
break;
case 12:
case 1:
case 2:
System.out.println("这是冬天");
break;
default:
System.out.println("请输入合法的月份");
break;
}
}
}
循环结构
while
重点
语法结构
while(循环条件|表达式){
循环体;//执行语句
}
执行顺序
1:判定循环条件,如果条件为真执行循环体1次
2:再次判定循环条件,直到循环条件不满足,整个循环结束。
注意事项
凡是不确定循环次数就可以优先考虑while循环
代码示例
计算1-100的和
public class Demo05{
public static void main(String[] args){
//1声明变量存放结果
int sum = 0;
//2声明变量存放1-100之间的数
int num = 1;
while(num<=100){
sum+=num;
num++;
}
System.out.println(num+"=="+sum);
}
}
do-while
重点
语法结构
do{
循环体;
}while(循环条件);
执行顺序
1:先执行循环提一次
2:再判定循环条件,如果条件为真执行循环体1次
3:再次判定循环条件,直到循环条件不满足,整个循环结束。
注意事项
while先判定在执行
do-while先执行在判定
代码示例
生成0-100随机数,直到生成88为止,停止循环!
public class Demo18{
public static void main(String[] args){
int num=0;
do{
num =(int)(Math.random()*101);
}while(num!=88);
System.out.println("num="+num);
}
}
for
重点
语法结构
for(循环变量;循环条件;改变循环变量的表达式){
循环体;
}
执行顺序
1:声明循环变量 (降低生命周期 调高内存利用率)
2:判定循环条件 如果循环条件为真,执行循环体一次
3:改变循环变量的值,判定循环条件,直到循环条件不满足
整个循环结束
注意事项
1:确定循环次数可以使用for循环
代码示例
计算1+2+3+4+5+6+7+8+9 的值
public class Demo16{
public static void main(String[] args){
int count=0;
for(int i=1;i<=9;i++){
count+=i;
}
System.out.println("和为"+count);
}
}
Tips
- break:
switch 防止穿透
跳出当前循环 break所在的循环 - return: 结束当前方法