
1.顺序结构 代码由上至下依次顺序执行
2.分支结构 if switch (两个关键字)
if形式一:
if(判断条件){
语句体
语句1;
语句2;
…
}
如果判断条件成立 就执行 语句体(语句体可以是多条语句)
例如:
//声明一个变量a并初始化为19
int a = ;
//如果a大于0 则执行语句体 输出你很棒
if(a > ){
System.out.println("你很棒")
}
结果
你很棒
形式二:
if(判断条件){
语句体1;
}else{
语句体2;
}
如果判断条件成立 则执行语句体1 反之不成立 执行语句体2
int number = ;
// 如果 number大于10 则执行语句1 否则执行语句2
if(number > ){
System.out.println("hi");// 语句1
}else{
System.out.println("hello");// 语句2
}
结果
hi
形式三:
if(判断条件1){
语句体1;
}else if(判断条件2){
语句体2;
}else{
语句体3;
}
从判断条件1开始判断 如果成立 就执行判断条件后的 语句体
其余条件将不再判断 直接跳过
如果条件不成立 则继续判断条件2…
如果所有条件都不成立 则执行 else 大括号的语句
//从判断条件1开始判断 如果成立 就执行判断条件后的 语句1
其余条件将不再判断 直接跳过
如果条件不成立 则继续判断条件..
如果所有条件都不成立 则执行 else 大括号的语句
int score = ;
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎来到成绩评定系统");
System.out.println("请输入一个成绩:");
score = scanner.nextInt();
if(score > ) { // 判断条件1
System.out.println("成绩优秀"); // 语句1
}else if( < score){// 判断条件2
System.out.println("成绩良好"); // 语句2
}else if( < score) {// 判断条件3
System.out.println("成绩合格"); // 语句3
}else {
System.out.println("成绩不合格"); // 语句4
}
结果
欢迎来到成绩评定系统
请输入一个成绩:
18
成绩不合格
大家看到这里是不是在想什么时候使用if语句 什么时候使用switch?
其实很简单 大家都想着怎么 方便 怎么用
当判断条件 是一个区间的时候 使用if语句比较简单
当判断条件 是几个值的时候 使用switch 相对简单
理论上来说 能用if的题 一定要用switch来解决 只是难易程度不同
3.循环结构 while do-while for (三种结构)
-
while 循环
1️⃣
while(循环的判断条件){
2️⃣
循环体
}
循环的规则:
当判断条件成立时 执行循环体
当判断条件不成立时 结束循环
当循环条件恒成立时 会出现死循环
可以给死循环写一个出口 来结束循环
执行顺序 1 ->2 ->1 ->2 ->1 -> 判断条件不成立 停止循环
大家有可能第一次接触循环 不知道如何去分析 大家看我的
例如:
声明一个变量
变量只声明 没有初值的时候 不能直接使用
1.初始化 循环增量
2.寻找循环的判断条件
3.写循环体
注意: 循环体中一定记住 循环增量要进行改变
打印 1-10的和
//累加思想 可以利用这个思想解决一堆问题
int number = ;//定义循环变量(求和 相当于计算循环增量的和)
int sum =; //保存计算的结果
while (number <= ) {
//与循环增量相加 保存结果
//用每次保存结果 与循环量相加
//一直加到10 结束
sum = sum + number;
number++;
}
//根据需求来选择打印的位置
System.out.print(sum);
结果
55
//死循环
while(true){
System.out.println("吃饭")// 这时会一直出现死循环
}
//想要走出死循环 就要写一个出口
int number1 = ;
while (true) {
// 写一个出口 来停止循环
// 死循环的出口都是写在最上面
if (number1 == ) {
break;
}
System.out.println("吃饭"); // 在这个时候就会跳出来循环
number1 ++;
}
结果
吃饭
吃饭
吃饭
吃饭
吃饭
循环结构2
do{
1️⃣
循环体(循环的内容)
2️⃣
}while(循环条件)
循环的规则
先执行一次循环体(无论条件成立与否都会执行一次循环体) 再去判断循环条件
如果成立 就执行循环体 反之 不成立 结束循环
先走 1️⃣ -> 2️⃣
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
例如:
打印遍睡觉
int number = ;
do {
System.out.println("睡觉");
//每次循环 修改循环增量
number++;
} while (number < );// 判断循环条件
结果
睡觉
睡觉
睡觉
睡觉
睡觉
循环的第三种形式(重点)
for(表达式1;判断条件;表达式2){ 表达式1
循环体
}
1️⃣ 2️⃣ 3️⃣
for(int i = 0;i < 10;i++){
4️⃣
System.out.println(“睡觉”);
}
执行顺序
1 -> 2 -> 4 -> 3 ->2 ->4 ->3
注意:初始化循环增量 只走一次
例如:
//打印 10次睡觉
for(int i = ; i < ; i++) {
System.out.println("睡觉" + i+ "次");
}
如果我这样写 大家觉得的对不对?
for(int i = ; i < ; i++) {
}
System.out.println("睡觉" + i+ "次");
肯定不对的 一定要注意
for 循环中声明的 循环变量 i 的作用域
仅仅在 循环中可以访问 除了循环就访问不到了
而且 在同一作用域中 变量名不能重复 (之前变量命名的时候说过的)
再给大家说个例子
计数器思想
使用for循环 -中 是的倍数 的个数 打印个数
输出-的数
判断的倍数 % =
记录一下 有给多少个数
int number = ;
for (int i = ; i < ; i++) {
if(i % == ) {
number++; //记录符合要求的次数
}
}
System.out.println("是7的倍数 的个数:" + number);// 输出总共的数
结果
学完 while 和 for 两种循环 我们该怎么选择使用哪个?
如果循环的增量只是用来控制循环的次数
再循环外面 不需要使用时 可以选取for循环
反之 循环变量在循环外 你可以继续使用或操作
这时 你可以选择while循环
既然有 for循环 肯定就有嵌套了
格式为
for( ){
for(){
}
}
例如:
打印下面图形 使用for循环
****
****
****
****
//外层循环控制? -> 控制行数
//内层循环控制? -> 控制 每一行 有几个元素
1️⃣ 2️⃣ 3️⃣
for (int i = 0; i < 4; i++⃣️⃣){
4️⃣ 5️⃣ 6️⃣
for (int j = 0; j < 4; j++) {
7️⃣
System.out.print("*");
}
//换行的意思
8️⃣
System.out.println("");
}
执行顺序
1 -> 2
-> 8 -> 5-> 7 -> 6 -> 5 -> 7 -> 6 -> 5(不成立时结束内循环)
-> 8 -> 3-> 2
大家可以思考一下 理一理思绪
// 九九乘法表
for (int i = ; i < ; i++) {
for (int j = ; j < i+; j++) {
System.out.print(j +"*" + i + "=" + i*j + "\t");
}
System.out.println("");
}
第一个 for 循环:代表行数。定一个整型变量 i, 它的初始值是 1;判断 i 是否小于10;如果成立, i 就自增 1。
第二个 for 循环:代表列数。定一个整型变量 j, 它的初始值是 1;判断 j 是否小于 i+1;如果成立, j 就自增 1。
结果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81