循环结构
一、课前问答
1、switch支持的数据类型。
2、switch中break的作用。
3、多重if如果多个条件都成立,执行方式。
二、while循环
语法:
while(布尔条件){
// 代码块1
}
执行流程:
先判断布尔条件,如果成立,则执行代码块1,然后再判断条件,成立再执行代码块1,直到条件不成立才结束。
public class Demo01 { // while循环 public static void main(String[] args) { int n = 0; // 初始化变量,只执行一次 while(n < 100) { // 判断条件 System.out.println("hello, world" + n); // 执行的内容 n++; // 条件的变化 } System.out.println("程序结束"); } }
public class Demo02 { // while循环,求1~100的和 public static void main(String[] args) { int n = 1; // 初始化变量,只执行一次 int sum = 0; // 计算和值 while(n <= 100) { // 判断条件 sum = sum + n; // sum += n; n++; // 条件的变化 } System.out.println("和值为:" + sum); } }
public class Demo03 { // while循环,求1~100所有偶数的和 public static void main(String[] args) { int n = 1; // 初始化变量,只执行一次 int sum = 0; // 计算和值 while(n <= 100) { // 判断条件 if(n % 2 == 0) { sum = sum + n; // sum += n; } n++; // 条件的变化 } System.out.println("和值为:" + sum); } }
public class Demo04 { // 求1~100以内所有与7相关的数字之和 public static void main(String[] args) { int n = 1; // 初始化变量,只执行一次 int sum = 0; // 计算和值 while(n <= 100) { // 判断条件 if(n % 7 == 0 || n % 10 == 7 || n / 10 == 7) { // 与7相关,7,14,21,17,27,37,70,71,72 sum = sum + n; // sum += n; } n++; // 条件的变化 } System.out.println("和值为:" + sum); } }
public class Demo05 { // 求所有的3位水仙花数 public static void main(String[] args) { int n = 100; while(n < 1000) { int g = n % 10; int s = n / 10 % 10; int b = n / 100; if(n == g * g * g + s * s * s + b * b * b) { System.out.println(n + "水仙花数"); } n++; } } }
三、do-while循环
语法:
do{
// 代码块
}while(条件);
执行流程:
先执行一次代码块,再判断条件,如果条件成立,再次执行代码块,再次判断条件,直到条件不成立为止。
while与do-while的区别:
while循环先判断条件,执行代码块的次数是0次到多次。
do-while循环先执行一次,再判断条件,执行代码块的次数是1次到多次。
public class Demo06 { // 根据评语判断是否抄写代码 public static void main(String[] args) { Scanner input = new Scanner(System.in); String s; do { System.out.println("抄写一遍代码"); System.out.println("请老师输入评语:"); s = input.next(); } while(!s.equals("y")); } }
public class Demo07 { // 猜数字 public static void main(String[] args) { Random random = new Random(); int number = random.nextInt(10) + 1; // 生成1~10的随机数 Scanner input = new Scanner(System.in); int n; do { System.out.println("请猜一个数字:"); n = input.nextInt(); // 比较大小,并提示用户 // 计次数字++ } while(number != n); System.out.println("恭喜你猜对了"); } }
四、for循环
语法:
for(int i = 0; i < 10; i++){
// 代码块
}
执行流程:
先执行初始化部分,即int i = 0; 只执行一次。
判断条件,i < 10; 如果条件成立,则执行代码块,条件不成立则循环结束
代码块执行完毕后,执行迭代部分,即i++,执行完毕后,继续判断条件,直到条件不成立。
public class Demo08 { // for循环 public static void main(String[] args) { for(int n = 0; n < 100; n++) { System.out.println("hello, world" + n); // 执行的内容 } System.out.println("程序结束"); } }