鱼C论坛

 找回密码
 立即注册
查看: 6772|回复: 8

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

[复制链接]
发表于 2017-1-19 14:31:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

for 循环语句

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

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

运行效果如下:

forUse.gif

栗子代码如下:

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.gif

栗子代码如下:

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.gif

栗子代码如下:

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 + "是素数");
            }
        }
    }
}
【特别注意】帖子中的栗子希望鱼油们能自觉的手动敲上去,不要单纯的复制粘贴保存,然后编译运行。


评分

参与人数 2荣誉 +8 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!
alltolove + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-19 16:05:00 | 显示全部楼层
稍微有点儿技术范儿了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-19 16:23:15 | 显示全部楼层
~风介~ 发表于 2017-1-19 16:05
稍微有点儿技术范儿了~

一般一般
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-19 16:56:50 | 显示全部楼层
2333

评分

参与人数 1鱼币 +5 收起 理由
零度非安全 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-20 14:58:12 | 显示全部楼层
for循环里是不是不能放初始化语句。类似for(int i = 0; i <10; ++)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-20 15:01:43 | 显示全部楼层
小小七 发表于 2017-1-20 14:58
for循环里是不是不能放初始化语句。类似for(int i = 0; i

可以的
for(int i = 0;i < 10;i++)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-20 14:06:25 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-10 14:47:42 | 显示全部楼层
怎么没有多重for循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-15 21:12:31 | 显示全部楼层
谢谢讲解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 21:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表