自学JAVA知识点总结 - 初级-第10页 - Aaron's Home -黄泽雨个人博客

记录与分享

自学JAVA知识点总结 - 初级

编程语言 JAVA

控制语句 - 循环结构

← 返回目录

while语句

        while循环结构:当类循环,先判断后执行,当符合条件则执行循环,如果不符合条件则跳出循环。

循环语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。

// while格式
while(布尔表达式){ //当满足条件执行循环
  循环语句;
}

// 求 1+2+3+4+5...+100 的和,使用暴力算法累加计算
public class test {
  public static void main(String[] args) {
    int a = 1; //开始的值
    int sum = 0; //sum变量代表和
    while(a<=100) { //判断a<=100是否为true,符合执行循环
      sum = sum+a; //计算和,第一次sum=0+1; 第二次sum=1+2; 第三次sum=3+3.....加到100后求最终和
      a++; //a自增1,用来计数
    }
    System.out.println(sum);
  }
}
  
// 解读循环步骤
    //第一次循环
    while(a<=100) { //此时a=1,符合条件继续循环
      sum = sum+a; //此时sum=0 加上 a=1
      a++;
    }
    // 第二次循环
    while(a<=100) { //此时a=2,符合条件继续循环
      sum = sum+a; //此时sum=1 加上 a=2
      a++; //此时a=2然后自增为3
    }
    //第三次循环
    while(a<=100) { //此时a=3,符合条件继续循环
      sum = sum+a; //此时sum=3 加上 a=3
      a++; //此时a=3然后自增为4
    }
    //第四次循环
    while(a<=100) { //此时a=4,符合条件继续循环
      sum = sum+a; //此时sum=6 加上 a=4
      a++; //此时a=4然后自增为5
    }

 

        do-while循环结构:当类循环,先执行后判断,先执行一次循环,当符合条件则继续执行循环,如果不符合条件则跳出循环。

// do-while格式格式
do{ //先执行一次循环
  循环语句;
}while(布尔表达式); //再判断,符合条件则继续循环,否则跳出循环

// 求 1+2+3+4+5...+100 的和,使用暴力算法累加计算
public class test {
  public static void main(String[] args) {
    int a = 1; //开始的值
    int sum = 0; //sum变量代表和
    do { //先执行一次
      sum += a; //sum = sum+a
      a++;
    } while (a<=100); //再判断
    System.out.println(sum);
  }
}

 

for语句

        for循环结构:for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环,否则终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。

// for循环格式
for (初始化表达式,初始化表达式2; 布尔表达式; 迭代因子,迭代因子2){
  循环语句;
}
 
// 求 1+2+3+4+5...+100 的和,使用暴力算法累加计算
public class test {
  public static void main(String[] args) {
    int sum = 0; //sum变量代表和
    // 先执行初始化表达式int a=1;执行后进行判断a<=100;判断后进行循环;循环后迭代因子自增计数
    for(int a=1; a<=100; a++) {
      sum += a; //计算和
    }
    System.out.println(a); // 报错,for循环中的变量,只能在for循环中使用
    System.out.println(sum);
  }
}

 

嵌套循环

        while、do-while、for嵌套循环:在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。while、do-while与for循环可以任意嵌套多层。

// 输出99乘法表
public class test {
  public static void main(String[] args) {
    for(int a=1; a<=9; a++) {
      for(int b=1; b<=a; b++) {
        System.out.print(b + "*" + a + "=" + b*a + "\t");
    }
    System.out.println();
    }
  }
}
 
// 解读循环步骤
    // 第一层for,第一次循环
    for(int a=1; a<=9; a++) { //a=1,a<=9符合条件,进行循环
      // 第二层for,第一次循环
      for(int b=1; b<=a; b++) { //b=1,(b=1)<=(a=1)符合条件,进行循环
        System.out.print(b + "*" + a + "=" + b*a + "\t"); //输出1*1=1+\t制表符
      } //b自增
      // 第二层for,第二次循环
      for(int b=1; b<=a; b++) { //b=2,(b=2)<=(a=1)不符合条件,跳出循环
        System.out.print(b + "*" + a + "=" + b*a + "\t"); //不执行
      } //跳出循环,b=1
      System.out.println(); //输出空行
    }
    
    // 第一层for,第二次循环
    for(int a=1; a<=9; a++) { //a=2,a<=9符合条件,进行循环
      // 第二层for,第一次循环
      for(int b=1; b<=a; b++) { //b=1,(b=1)<=(a=2)符合条件,进行循环
        System.out.print(b + "*" + a + "=" + b*a + "\t"); //输出1*2=2+\t制表符
      } //b自增
      // 第二层for,第二次循环
      for(int b=1; b<=a; b++) { //b=2,(b=2)<=(a=2)符合条件,进行循环
        System.out.print(b + "*" + a + "=" + b*a + "\t"); //输出2*2=4+\t制表符
      } //b自增
      // 第二层for,第三次循环
      for(int b=1; b<=a; b++) { //b=3,(b=3)<=(a=2)不符合条件,跳出循环
        System.out.print(b + "*" + a + "=" + b*a + "\t"); //不执行
      } //跳出循环,b=1
      System.out.println(); //输出空行
    }

 

break和continue语句

        break语句:在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句。

        continue语句:continue用在while,do-while中,continue 语句立刻跳到循环首部,越过了当前循环的其余部分;在for循环中,跳到for循环的迭代因子部分。

public class test {
  public static void main(String[] args) {
    int count = 0; //定义计数器
    for (int i = 100; i < 150; i++) {
      // 如果是3的倍数,则跳过本次循环,继续进行下一次循环
      if (i % 3 == 0){
        continue; //跳过本次循环,继续进行下一次循环
      }
      // 否则(不是3的倍数),输出该数
      System.out.print(i + "\t");
      count++; //没输出一个数,计数器加1
      // 根据计数器判断每行是否已经输出了10个数
      if (count % 10 == 0) {
      	break; //输出达到10个数结束循环
      }
    }
  }
}

        带标签的break语句:类似goto,强行退出循环,不执行循环中剩余的语句。

        带标签的continue语句:类似goto,跳过本次循环,跳到指定标签位置。

public class test {
    public static void main(String args[]) {
        // 打印101-150之间所有的质数
    	outer: for (int i = 101; i < 150; i++) {
            for (int j = 2; j < i / 2; j++) {
                if (i % j == 0){
                    continue outer; //跳过本次循环,跳到outer标签位置
                }
            }
            System.out.print(i + "  ");
        }
    }
}

 

 


↓ 点击翻页 ↓

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

分享