程序流程控制:循环结构

循环语句分类

for 循环

while 循环

do-while 循环(用的较少)

循环语句的四个组成部分

初始化部分(init_statement)

循环条件部分(test_exp)

循环体部分(body_statement)

迭代部分(alter_statement)

for循环

 ​
 /*
 一,循环结构的四要素
 1.初始化条件
 2.循环条件(是boolean类型)
 3.循环体
 4.迭代条件
 二,for循环的结构
 for(1;2;4){
     3
 }
  */
 public class ForTest {
     public static void main(String[] args){     //i:0,1,2,3,4
         for(int i = 0 ; i < 5 ; i++){
             System.out.println("HelloWorld");
         }
     }
 }
 ​

遍历100以内的偶数,并输出所有偶数的和, 和偶数的个数

 //遍历100以内的偶数,并输出所有偶数的和, 和偶数的个数
 public class ForTest {
     public static void main(String[] args) {
         int sum = 0;//记录所有偶数的和
         int count = 0;//记录偶数的个数
         for (int i = 1; i <= 100; i++){
             if (i % 2 == 0) {
                 System.out.println(i);
                 sum += i;
                 count++;
             }
         }
         System.out.println("总和为" + sum);
         System.out.println("个数为" + count);
     }
 }
 ​
 /*
 编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行
 上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印
 输出“baz”
  */
 public class ForTest {
     public static void main(String[] args) {
 ​
         for(int i = 1;i <= 150 ;i++){
             System.out.print(i + " ");
 ​
             if(i % 3 == 0) {
                 System.out.print("foo ");
             }
             if(i % 5 == 0) {
                 System.out.print("biz ");
             }
             if(i % 7 == 0) {
                 System.out.print("baz ");
             }
             System.out.println();
         }
     }
 }
 ​
 /*
 输入两个正整数m和n,求其最大公约数和最小公倍数。
 比如:12和20的最大公约数是4,最小公倍数是60
  */
 import java.util.Scanner;
 public class Test {
     public static void main(String[] args){
         Scanner scan = new Scanner (System.in);
         System.out.println("请输入第一个正整数:");
         int m = scan.nextInt();
         System.out.println("请输入第二个正整数:");
         int n = scan.nextInt();
         //获取两个数中的较小值
         int min = (m < n)? m : n;
         for(int i = min; i >= 1; i--){
             if (m % i == 0 && n % i ==0){
                 System.out.println("最大公约数为:" + i);
                 break;//一旦在循环中执行到break,就跳出循环
             }
         }
         int max = (m > n)? m : n;
         for(int i = max; i <= m * n; i++){
             if(i % m == 0 && i % n == 0){
                 System.out.println("最小公倍数为:" + i);
                 break;
 ​
             }
         }
 ​
     }
 }
 ​

 ​
 /*
 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数
 字立方和等于其本身。
 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
  */
 public class Test {
     public static void main(String[] args){
         for(int i = 100;i < 1000;i++){
             int bai = i / 100;
             int shi = i % 100 / 10;
             int ge = i % 10;
             if(i == ge * ge * ge + bai * bai * bai + shi * shi * shi){
                 System.out.print("水仙花数为:");
                 System.out.println(i);
             }
         }
 ​
     }
 }

while循环

 ​
 /*
 while 循环的使用
 一.循环结构的四要素
 1.初始化条件
 2.循环条件(boolean类型)
 3.循环体
 4.迭代条件
 二.while循环的结构
 ​
 1;
 while(2){
       3 ;
       4;
 }
 说明:1.写while循环千万小心不要丢了迭代条件,丢了就导致死循环
       2.for循环与while循环是可以相互转换的
       3.for循环和while循环的初始化条件部分的作用范围不同
  */
 //遍历100以内的所有偶数
 public class Test {
     public static void main(String[] args){
         int i = 1;
         while(i <= 100){
             if(i % 2 == 0){
             System.out.println(i);
             }   
             i++;
         }
     }
 }
 ​

 ​
 /*
 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入
 为0时结束程序。
  */
 import java.util.Scanner;
 public class Test {
     public static void main(String[] args){
         Scanner scan = new Scanner(System.in);
         int positiveNumber = 0;
         int negativeNumber = 0;
         while(true){
             int number = scan.nextInt();
             if(number > 0){
                 positiveNumber++;
             }else if(number < 0){
                 negativeNumber++;
             }else{
                 break;
             }
         }
         System.out.println("正数的个数:" + positiveNumber);
         System.out.println("负数的个数:" + negativeNumber);
     }
 }
 ​

do-while循环

 ​
 /*
 do-while 循环的使用
 一.循环结构的四要素
 1.初始化条件
 2.循环条件(boolean类型)
 3.循环体
 4.迭代条件
 二.do-while循环的结构:
 1;
 do{
       3 ;
       4;
 }whlie(2);
 ​
 说明:1.do-while循环至少执行一次循环体
  */
 //遍历100以内的所有偶数
 public class Test {
     public static void main(String[] args){
       int i = 1;
       do{
           if(i % 2 ==0){
               System.out.println(i);
           }
           i++;
       }while(i <= 100);
     }
 }
 ​

嵌套循环

 ​
 /*
 嵌套循环的使用
 1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体结构中,就构成了嵌套循环
 2.外层循环:循环结构B
   内层循环:循环结构A
 3.外层循环控制行数,内层循环控制列数
  说明:内层循环结构遍历一遍,只相当于外层循环循环体执行了一次
  */
 ​
 public class Test {
     public static void main(String[] args){
       for(int s = 1;s <= 5; s++){
           for(int h = 1; h <= 5;h++){
               System.out.print("*");
           }
           System.out.println();
       }
     }
 }
 ​
 public class Test {
     public static void main(String[] args){
       for(int s = 1;s <= 5; s++){
           for(int h = 1; h <= s;h++){
               System.out.print("*");
           }
           System.out.println();
       }
     }
 }

 ​
 /*
 九九乘法表
 1*1 =1
 2*1 =2  2*2=4
 ......
 9*1 =9  .....   9*9 =81
  */
 ​
 public class Test {
     public static void main(String[] args){
      for(int h = 1 ; h <= 9 ; h++){
          for(int l = 1 ; l <= h ; l++){
              System.out.print(h + "*" + l + "=" + (h * l) +"    ");
          }
         System.out.println();
      }
     }
 }
 ​

 ​
 /*
 遍历一百以内的质数(素数)
  */
 ​
 public class Test {
     public static void main(String[] args){
         boolean isFlag = true;//标识i是否被除尽,一旦除尽,修改其值
 ​
         for(int i = 2; i <= 100; i++){  //遍历100以内的自然数
             for(int j = 2 ; j < i ; j++){   //j:被i去除
                 if(i % j == 0){     //i被j除尽
                     isFlag = false;
                     break;  //只对本身非质数的自然数是有效的
                 }
             }
             if(isFlag == true){
                 System.out.println(i);
             }
             isFlag = true;  //重置isFlag
         }
 ​
     }
 }
 ​

特殊流程语句说明

break

break使用场合:switch-case 循环结构

说明:结束当前循环

 package com.sz.zl;
 public class Test {
     public static void main(String[] args){
         for(int i = 1;i <= 10;i++){
             if(i % 4 == 0){
                 break;
             }
             System.out.println(i);  //输出:1 2 3
         }
         
     }
 }
 ​

continue

continue使用场合:循环结构

说明:结束当此循环

 ​
 public class Test {
     public static void main(String[] args){
         for(int i = 1;i <= 10;i++){
             if(i % 4 == 0){
                 continue;
             }
             System.out.println(i);  //输出:1 2 3 5 6 7 9 10
         }
 ​
     }
 }
 ​

在嵌套循环中的使用

 ​
 public class Test {
     public static void main(String[] args){
         for(int i = 1;i <= 4;i++){
             for(int j =1;j <= 10;j++){
                 if (j % 4 == 0) {
                     //break;  //默认跳出包裹此关键字最近的一层循环
                     continue;
                 }
                 System.out.print(j);                //输出结果:  123
             }                                       //          123
             System.out.println();                   //          123
         }
     }
 }       
 ​
 ​
 public class Test {
     public static void main(String[] args){
         label:for(int i = 1;i <= 4;i++){        //label: 指定标识
             for(int j =1;j <= 10;j++){
                 if (j % 4 == 0) {
                     //break label;//跳出指定标识的一层循环
                     continue label;
                 }
                 System.out.print(j);
             }
             System.out.println();
         }
     }
 }
 ​
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值