循环结构:(多次执行)
1.for循环:固定循环次数,频繁,结构清晰不容易出错;
for(表达式1;表达式2;表达式3){
循环体; }
for循环中:跳出循环:用if....break;
代码内运行步骤:
第一轮循环: 1.表达式1 —> 2.表达式2 —> 3.循环体 —> 4.表达式3;
第二轮循环: 5.表达式2(成立) —> 6.循环体 —> 7.表达式3;
注:表达式1:初始条件
表达式2:结束条件
表达式3:控制变量的递增递减
2.while循环: 不清楚循环次数
1.初始化变量
2.while(控制循环条件) {
变量递增递减;
循环体;
}
int i = 0;
while(i<10) {
i++;
System.out.println(" i= "+i);
}
3.do...while循环:
不清楚循环次数;
先执行再判断,至少执行1次;
(部分代码)
//输入一个数a,判断是几位数:
//先执行再判断
do {
a /= 10;
i++;
//执行次数,当a=0时,在下方判断时会跳出;
}while(a != 0);
4.关键字:
1.break关键字:
1. 用于switch..case语句中的case语句块里,作用是结束switch的执行。
2. 除非特殊需求需要省去break,否则每个case都要写上break。
2.continue关键字:
1.continue关键字的作用是用于结束本次循环。
2.continue只是结束本次循环,而不是结束整个循环。
3.continue通常情况下也是与if语句搭配使用。
1.for...循环练习:
(1) “求输入数字的阶乘”
要求:从键盘录入数字,用for循环计算出该数的阶乘,并输出;
package com.gy;
import jdk.util.Scanner;
public class ForLoop {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:")
int num = sc.nextInt();
int n = 1; //因为是阶乘,0乘任何数结果都为0,故n的初始值不能为0;
for(int i = num;i >= 1; i--) {
n = n*i;
System.out.println(n);
}
System.out.println(num+"的阶乘为"+n);
}
}
(2) “水仙花数”
要求:水仙花:3位数 个位立方+十位立方+百位立方=数字本身
1000以内用for....循环判断 哪些为水仙花数,并输出;
package com.lanou;
public class ForLoop2 {
public static void main(String[] args) {
int count = 0;
for(int i = 100 ; i < 1000;i++) {
int b = i/100; //百位
int s = i/10%10; //十位
int g = i%10; //个位
if(b*b*b+s*s*s+g*g*g == i) {
System.out.println("该数为水仙花数:"+i);
count += 1; //或count++:统计数量
}
}
System.out.println("一共有"+ count +"个水仙花数");
}
}
2.while..循环练习:
(1) “提示输入1~7之间的数”
要求:当输入值不在1~7内时,提示“请输入1~7之间的整数:”,用while..循环;
package com.gy;
import java.util.Scanner;
public class while1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 0;
//while:不满足条件会跳出循环体!
while(n>7||n<1){
System.out.println("请输入一个数1~7之间的数:");
n = sc.nextInt();
}
System.out.println("结束."+n);
}
}
(2)“珠穆朗玛峰---折纸”
要求:珠穆朗玛峰: 8844.43m;纸:0.1mm;
用while..循环计算出需要纸需要对折多少次才能到达珠穆朗玛峰的高度;
package com.gy;
public class while3 {
public static void main(String[] args) {
// 珠穆朗玛峰 8844.43m 纸:0.1mm
// 折叠多少次
int i = 0;
double n = 0.1;
// 0.1 0.2 0.4 0.8
while(n <= 8844430) {
i++;
n= n*2;//等价于n*=2;
}
System.out.println("次数是:"+i);
}
}
本文为个人学习总结,感谢大家借鉴,共同进步!