Java流程控制之循环结构
while循环
1.写法
1
while(判断条件) {
2
循环体
}
如果判断条件成立,就执行循环体,反之不成立就不执行
2.执行顺序:1 -> 2 -> 1(再去看条件是否成立) -> 2 -> 1(如果不成立 循环结束)
例1:打印10遍睡觉
int num = 0;
while (num < 10) {
System.out.println("睡觉");
num++;
}
例2:银行定期存款5年及以上利率7.5%,否则利率 4.5%。本金为10000存10年,计算本金加利息。
double num = 10000;
int year = 1;
while (year <= 10) {
num = num + num * 0.075;
year++;
}
System.out.println(num);
do while循环
1.写法
do{
1
循环体
} while(循环判断条件);
2
执行规则:先执行循环体中得内容(不管循环条件成不成立,都会执行循环体的内容),再去看循环条件,满足就继续执行循环体,然后依次循环。当循环条件不成立时,循环结束。
2.执行顺序:1--> 2 --> 1 --> 2
例1:打印10次睡觉
int num = 0;
do {
System.out.println("睡觉");
num++;
} while (num <= 9);
例2:从周一开始打印 并询问明天上班不 输入上班 继续打印 输入不上班 停止程序
int num = 1;
Scanner scanner = new Scanner(System.in);
String str = "";
do {
System.out.println("星期" + num);
System.out.println("明天上班不");
str = scanner.nextLine();
num++;
} while (str.equals("上班") && num <= 7);
for 循环(重点)
1.写法
for(表达式;判断条件;表达式){
循环体
}
例1:打印10遍睡觉
1 2 3
for(int i = 0; i < 10; i++) {
4
System.out.println("睡觉");
}
执行顺序:1 -> 2 -> 4 -> 3 -> 2 -> 4 -> 3
当判断条件不成立,结束循环
注意:循环的执行顺序
例2:计算 1+2+...+10的和
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
例3:使用for循环 从1-1000 中 是2的倍数 并且不是10的倍数 的个数 打印个数
int count = 0;
for (int i = 1; i <= 1000; i++) {
if(i % 2 == 0 && i % 10 != 0) {
count++;
}
}
System.out.println(count);
for循环的嵌套
① ② ③
for (int i = 0; i < 10; i++) {
④ ⑤ ⑥
for(int j = 0; j < 10; j++) {
⑦
System.out.println("sj");
}
⑧
System.out.println("xl");
}
⑨
System.out.println("kl");
执行顺序:
1 - 2 - 4 - 5 - 7 - 6 - 5 - 7 - 6 当5不满足的时候跳到8
8 - 3 - 2 - 4 - 5 - 7 - 6
例1:打印下列图形 使用for循环的嵌套
for(int i = 0 ; i < 4 ; i++) {
for(int j = 0; j < 3; j++) {
System.out.print("*");
}
System.out.println();
}
发现规律:外循环 控制行数,内循环 控制每一行有几个元素
例2:打印下列图形
for (int i = 0; i < 5; i++) {
for (int j = i; j < 5 ; j++) {
System.out.print("*");
}
System.out.println();
}
修改内循环的循环增量初始值
break 在循环当中的作用
实例:
for (int i = 0; i < 10; i++) {
if(i == 8) {
break;
}
System.out.println(i);
}
例:
法一:
int max = 0;
for (int i = 0; i <= 100; i++) {
if (i % 7 == 0) {
max = i;
}
}
System.out.println(max);
法二:使用break可以到这打印,进到循环中的第一个数就是最大值
for (int i = 100; i >= 0; i--) {
if (i % 7 ==0) {
System.out.println(i);
break;
}
}
死循环时,break可以当做出口。
continue在循环中的作用
实例:
for (int i = 0; i < 10; i++) {
if (i == 6) {
continue;
}
System.out.println(i);
}
例:班级11个人 跟每个人打招呼 讨厌的人不打招呼 分别讨厌3号、5号、9号
for (int i = 1; i <= 11; i++) {
if(i == 3 || i == 5 || i == 9) {
continue;
}
System.out.println(i + "号你好");
}
for 循环嵌套中continue和break的作用:
嵌套中 break 结束了本层的循环
continue 跳出这一次的本层循环 继续下一次的本层循环
没有影响到外层循环
例:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j == 5) {
continue;
}
System.out.print(j);
}
System.out.println();
}