> 文章列表 > 循环结构

循环结构

循环结构

循环结构

      • 循环结构
        • 一、课前问答
        • 二、while循环
        • 三、do-while循环
        • 四、for循环
        • 五、流程控制
          • 5.1 break
          • 5.2 continue

循环结构

一、课前问答

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,72sum = 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("程序结束");}
}

五、流程控制

5.1 break

在一层循环中使用,作用是停止循环。

public class Demo2 {// 找到最小的3位7的倍数public static void main(String[] args) {for (int i = 100; i < 1000; i++) {if(i % 7 == 0) {System.out.println(i);break;}}}
}
public class Homework1 {// 定义两个int类型数字,求最大公约数。public static void main(String[] args) {int num1 = 32000;int num2 = 260;for (int i = num1; i > 0 ; i--) {if(num1 % i == 0 && num2 % i == 0) {System.out.println("最大公约数为:" + i);break;}}}
}
public class Homework2 {// 定义两个int类型数字,求最小公倍数。public static void main(String[] args) {int num1 = 6;int num2 = 10;for (int i = 1;; i++) {if(i % num1 == 0 && i % num2 == 0) {System.out.println("最小公倍数为:" + i);break;}}}
}

注意:循环中止使用break只能停止一层循环,并不能停止嵌套循环。

5.2 continue

在循环中,如果执行continue,意味着当次循环在continue后面的代码不执行,继续执行下一次循环。

注意:如果在循环中continue后面没有代码,意味着continue没有意义。

public class Demo3 {// continue循环public static void main(String[] args) {for (int i = 0; i < 10; i++) {if(i == 5) {continue;}System.out.println("hello");System.out.println("world");System.out.println("11111");System.out.println(i);}}
}

谭姐软件下载网