##流程控制语句
##一、顺序结构
1.什么是顺序结构
从上往下依次执行
##二、选择结构(重点掌握*****)
####1.if结构:
>* 1:第一种格式:
>* 2:第二种格式:
>* 3:第三种格式:
总结:
1:第一种格式:
if (关系表达式) {
语句体;
}
执行流程:
* 判断关系表达式的值是true还是false
* 如果是true就执行语句体;
* 如果是false 就不执行语句体;
int score = 98;
if(score >= 99){
System.out.println("带你去岛国,带你嗨.....");
}
System.out.println("回家自嗨....");
注意:单个if只能判断一种情况,两种情况是判断不了的
2:第二种格式:
格式:
if (关系表达式) {
语句体1;
}else{
语句体2;
}
执行流程:
* 判断关系表达式的值是true还是false
* 如果是true就执行语句体1;
* 如果是false 就执行语句体2;
int score = 98;
if(score >= 99){
System.out.println("带你去岛国,带你嗨.....");
}else{
System.out.println("在家多准备点纸巾,我给你带土特产.....");
}
System.out.println("回家自嗨....");
练习:判断一个整数是否是一个偶数,如果是一个偶数,打印偶数,反之是奇数
3:第三种格式
格式:
if (关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}else if (关系表达式3) {
语句体3;
}
...
else{
语句体n+1;
}
执行流程:
* 先判断关系表达式1的值是true还是false
* 如果是true,就执行语句体1;
* 如果是false 就判断关系表达式2的值是true还是false
* 如果是true,就执行语句体2
* 如果是false,就开始判断关系表达式3的值...
* 如果表达式的值是都是false就会执行else中的语句体n+1;
public static void main(String[] args) {
int x = 3;
int y;
if(x >= 3){
y = 2 * x + 1;
}else if(x > -1 && x < 3){
y = 2 * x;
}else if(x <= -1){
y = 2 * x - 1;
}
System.out.println(y);
}
能使用三元运算符的,那么就能使用if...else这种方式
能使用if...else的方式,不一定能使用三元运算符
####2.switch结构:
>* 1:格式:
>* 2:执行流程
总结:
1. 格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
default:
语句体 n+1;
break;
}
表达式的值:
2. 执行流程:
* 先计算表达式的值,然后依次跟case后面的值进行匹配,如果能匹配的上,开始执行语句体.遇到break就结束了switch语句
如果的都没有匹配上,就执行default:语句体 n+1;
public static void main(String[] args) {
// 定义一个变量
int num = 6;
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;
}
}
>* switch语句的注意事项
A. 多个case后面的值是否可以重复?
不可以重复的
B. switch()中可以给出的数据类型有?
基本数据类型: byte short char int
引用数据类型: String 枚举
C. default语句一定要放在最后的位置吗?
不一定
D. break语句可以省略吗?
可以,但是不建议
省略了break,就会发生一个效果,case穿透
>* switch语句的结束条件是?
遇到break就结束了switch语句
整体switch语句结束
##三、循环结构
>* 1.for循环结构:
>* 2.while循环结构:
>* 3.do...while循环结构:
总结:
循环有那几块内容:
* 初始化语句: 定义一个变量,只执行一次
* 条件判断语句: 判断条件是否满足,如果满足就执行循环体,如果不满足,结束循环体
* 循环体:重复要做的事情
* 步进语句(控制循环语句) : 进行扫尾工作,每一次循环都要执行一次
1:for循环结构:
格式:
for(初始化语句;条件判断语句;步进语句){
循环体
}
* 执行流程:
* 1: 先执行初始化语句 int =0; int = 100;
* 2: 判断条件语句,是否满足,如果满足就执行循环体,不满足结束for循环
* 3: 执行循环体
* 4: 执行步进语句
* 5: 回到第二步进行继续判断
for(int i= 1;i <= 10;i++){
System.out.println("啊!!!,苍,我老喜欢你啦....,你的动作太优美了....."+i);
}
2:while循环结构:
格式:
初始化语句
while(判断条件语句){
循环体;
步进语句;
}
执行流程:
* 1: 先执行初始化语句 int =0; int = 100;
* 2: 判断条件语句,是否满足,如果满足就执行循环体,不满足结束while循环
* 3: 执行循环体
* 4: 执行步进语句
* 5: 回到第二步进行继续判断
public static void main(String[] args) {
for(int i= 1;i <= 10;i++){
System.out.println("啊!!!,苍,我老喜欢你啦....,你的动作太优美了....."+i);
}
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~");
int i= 1;
while(i <= 10){
System.out.println("嗯~~,我想跟你谈一笔几十亿的工程......");
i++;
}
}
3:do...while循环结构(了解):
格式:
初始化语句;
do{
循环体;
步进语句;
}while(条件判断语句);
执行流程:
* 1:初始化语句
* 2:循环体;
* 3:执行步进语句
* 4:判断条件,如果为true 回到第二步进行执行
如果为false的话,就结束do...while循环
for(int i= 1;i <= 10;i++){
System.out.println("啊!!!,苍,我老喜欢你啦....,你的动作太优美了....."+i);
}
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~");
int i= 1;
do{
System.out.println("啊!!!,苍,我的梦想是想跟你合作一把,拍片.....");
i++;
}while(i <= 10);
## 四、练习_用循环求出1-100之间的偶数和(必须掌握)
>* 目标: 理解求和(累加)思想, 理解循环实现需求的思想
分析:
public static void main(String[] args) {
int sum = 0; // 用于存储和的
for (int i = 1; i <= 100 ; i++) {
// 求偶数和
if(i % 2 == 0){
// 开始求和
sum+=i;
// sum = sum + i;
}
}
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~");
for (int i=0; i<= 100;i+=2 ) {
sum+=i;
}
}
## 五、三种循环之间的区别:
>* 1:do…while循环的与for循环和while循环的最大区别是什么?
>* 2:for循环和while循环在有什么区别?
总结:
1.do...while: 不管条件是否成立,都会执行一次
for和while循环:执行之前,先判断条件是否成立,如果成立执行循环体,如果不成立,就结束循环
2.for和while循环:
变量作用域的问题
for:初始化变量在小括号内的,只能是在for循环内使用,出了for循环就不能使用
while:初始化变量,是定义在大括号外部的,while循环结束之后,还可以使用初始化变量
使用的顺序:
for--> while --> do...while
##五、控制循环语句
>* 1.break语句
>* 2.continue语句
总结:
1:break语句
break: 表示中断的意思,结束
作用: 结束循环和switch语句的
使用场景:
循环
switch语句中
2:continue语句
作用: 结束本次循环,继续下一次循环
使用场景:
循环中
for(int i = 1 ; i<= 33 ; i++){
if(i % 2 != 0){
continue;
}
}
注意事项:控制循环语句,脱离使用场景,没有任何意义!
##六、死循环
>* 定义死循环的格式是?
>* 使用死循环的注意事项
总结:
##七、循环嵌套
>* 什么是循环的嵌套?