7.分支与循环
1139字约4分钟
2024-12-02
三大流程控制
- 顺序控制
- 分支控制
- 循环控制
分支控制
- 单分支
- 双分支
- 多分支
if - 单分支
int a = 10;
int b = 20;
// 当if小括号里面的条件为真时,则运行if大括号里面的代码
if (a < b) {
System.out.println("正确");
}
if - else - 双分支
int a = 10;
int b = 20;
// 当if小括号里面的条件为真时,则运行if大括号里面的代码,否则运行else大括号里面的代码
if (a > b) {
System.out.println("正确");
} else {
System.out.println("错误");
}
多分支
多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有,则继续运行if语句之外的代码
int a = 10;
int b = 20;
int c = 30;
int d = 40;
if (a > b) {
System.out.println(a + "大于" + b);
} else if (b > c) {
System.out.println(b + "大于" + c);
} else if (c > d) {
System.out.println(c + "大于" + d);
} else {
System.out.println("程序继续");
}
嵌套分支
就是if分支里面在嵌套一个if分支
int a = 1;
int b = 2;
if (a < b) {
if (a > b) {
} else {
}
} else {
if (a < b) {
} else {
}
}
switch分支
如果没有匹配的语句,而且也没有 default
语句,则什么也不输出
switch表达式中的返回值以及子句中的返回值除了小数
和布尔值
以外,其它的数据类型都可以
Scanner my = new Scanner(System.in);
System.out.print("请输入所对应的数字: ");
int info = my.nextInt();
// info接收键盘输入的数字,然后传到switch
// 如果info接收的键盘值是1,那么就运行 case 1: 里面的代码,其它数也是一样的
// 如果输入的数在case中没有,那么就运行default里面的代码
switch (info) {
case 1:
System.out.println("hello");
break;
case 2:
System.out.println("world");
break;
default :
System.out.println("bye");
}
Scanner my = new Scanner(System.in);
System.out.print("请输入所对应的数字: ");
int info = my.nextInt();
// 运行switch语句时,如果case中没有break语句,则会一直运行下去,直到遇到break语句时才停止,或者直接从第一个case运行到最后的default语句
// 而这个过程被称为 穿透
switch (info) {
case 1:
System.out.println("hello");
case 2:
System.out.println("world");
break;
default :
System.out.println("bye");
}
如果判断的具体数值不多时,则建议使用switch语句
for循环
for (int i = 1; i <= 5; i++) {
// 该语句会循环5次
System.out.println(i);
}
无限循环
/**
* 该语句是无限循环
* 运行该语句则会一直运行for语句里面的类容
* 然后一直循环下去
* */
int i = 0;
for ( ; ; ) {
System.out.println("i=" + ++i);
}
for
循环增强版
// For循环增强版
public class For {
public static void main(String[] args) {
int[] a = {1, 2, 9};
// for普通版
for (int i = 0; i < a.length; i++) {
System.out.println("a = " + a[i]);
}
// for增强版
// 将数组a中的元素一个一个的赋值给定义好的int i
// 数组a中的元素全部赋值给int i 之后该循环结束
for (int i : a) {
System.out.println("i = " + i);
}
}
}
多重循环
多重循环和嵌套分支差不多
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print("0 ");
}
}
while循环
While循环注意点
- 循环条件是返回一个布尔值的表达式,也就是说while( 这里面的值是一个布尔值,不能为别的值 )
- while循环是先判断再执行语句
int a = 5;
while (a > 0) {
System.out.println(a);
a--;
}
do ...... while循环
注意:do......while的循环条件也是一个布尔值,除了布尔值,不能为别的值
int a = 5;
do {
System.out.println(a);
a--;
} while (a > 0);
do......while和while这两个循环体的区别是do......while是先执行大括号里面的代码,然后在判断是否可以继续循环,而while则是先判断是否可以循环,然后在运行大括号里面的代码
总结
- 循环语句里面定义的变量只能在循环语句里面使用,循环语句外面是不可以使用循环语句里面定义的变量的,如果想在循环语句里面以及循环语句外面都可以使用变量,则需要在循环语句之外定义变量
// 例子
int a = 0;
for (int b = 0; b <= 10; b++) {
a++;
System.out.printon(a);
}
// 如果上面不定义 int a = 0;
// 那么下面这条语句就不能输出 a 的值
System.out.println(a);