零度非安全 发表于 2017-1-19 14:31:10

【Java 教程(原创)】014.循环语句、break 和 continue语句详解

本帖最后由 零度非安全 于 2017-1-21 14:13 编辑

【Java 教程(原创)】索引帖

循环语句是根据条件,要求程序反复执行某些操作,直到程序“满意”为止。

for 循环语句

for 语句的语法格式如下:
for(表达式1;表达式2;表达式3){
    若干语句
}
说明:“表达式 2”必须是一个求值为 boolean 型数据的表达式,复合语句称为循环体,“表达式 1”负责完成变量的初始化;“表达式 3”用来修饰变量,改变循环条件。我还是通过栗子来给鱼油们说清楚。

下面这个栗子是计算 8 + 88 + 888 + 8888 + ···的前 12 项的和。

运行效果如下:



栗子代码如下:

forUse.java
public class forUse{
    public static void main(String args[]){
      long sum = 0,a = 8,item = a,n = 12,i = 1;
      for(i = 1;i <= n;i++){
            sum = sum + item;
            item = item * 10 + a;
      }
      System.out.println(sum);
    }
}
while 循环语句

while 语句的语法格式如下:
while(表达式){
    若干语句
}
说明:表达式为循环条件,该表达式是一个求值为 boolean 类型的数据。计算表达式的值,若果该值为 true,则执行循环体,否则结束 while 循环。

do-while 循环语句

do-while 循环语句的语法格式如下:
do{
    若干语句
}while(表达式);
说明:do-while 循环和 while 循环的区别是,do-while 的循环体至少被执行一次。我还是通过栗子来解释下。

下面这个例子用 while 语句计算 1 + 1/2! + 1/3! + 1/4! + ···的前 20 项的和。

运行效果如下:



栗子代码如下:

whileUse.java
public class whileUse{
    public static void main(String args[]){
      double sum = 0,item = 1;
      int i = 1,n = 20;
      while(i <= n){
            sum = sum + item;
            i = i + 1;
            item = item * (1.0/i);
      }
      System.out.println("sum = " + sum);
    }
}
break 和 continue 语句

break 和 continue 语句是用关键字 break 和 continue 加上分号构成的语句,例如:
break;
在循环体中可以使用 break 语句和 continue 语句。在一个循环中,例如循环 50 次的循环语句中,如果在某次循环中执行了 break 语句,那么整个循环语句就结束。如果在某次循环中执行了 continue 语句后面的语句,而转入进行下一次循环。

下面这个栗子使用了 break 和 continue 语句。前半部分计算 1 + 3 + 5 + 7 + 9的和,后半部分 输出 50 以内的素数。

运行效果如下:



栗子代码如下:

bcUse.java
public class bcUse{
    public static void main(String args[]){
      int sum = 0,i,j;
      for(i = 0;i <= 10;i++){
            if(i % 2 == 0){
                continue;
            }
            sum = sum + i;
      }
      System.out.println("sum = " + sum);
      for(j = 2;j <= 50;j++){
            for(i = 2;i <= j/2;i++){
                if(j % i == 0){
                  break;
                }
            }      
            if(i > j/2){
               System.out.println("" + j + "是素数");
            }
      }
    }
}
【特别注意】帖子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。


点我前往上一讲点我前往下一讲

~风介~ 发表于 2017-1-19 16:05:00

稍微有点儿技术范儿了~{:10_256:}

零度非安全 发表于 2017-1-19 16:23:15

~风介~ 发表于 2017-1-19 16:05
稍微有点儿技术范儿了~

一般一般{:7_141:}

n9vakin 发表于 2017-1-19 16:56:50

2333

小小七 发表于 2017-1-20 14:58:12

for循环里是不是不能放初始化语句。类似for(int i = 0; i <10; ++)

零度非安全 发表于 2017-1-20 15:01:43

小小七 发表于 2017-1-20 14:58
for循环里是不是不能放初始化语句。类似for(int i = 0; i

可以的
for(int i = 0;i < 10;i++)

CarpLyy 发表于 2017-3-20 14:06:25

学习{:10_298:}

4571679 发表于 2018-4-10 14:47:42

怎么没有多重for循环

suiyisuixin2017 发表于 2018-4-15 21:12:31

谢谢讲解
页: [1]
查看完整版本: 【Java 教程(原创)】014.循环语句、break 和 continue语句详解