Java中循环控制语句的总结及代码练习

    本文主要是对循环控制语句的总结:

1. 总体知识结构

总体知识结构梳理图

 

2. If语句

If语句知识梳理图

 

相关代码练习:

⑴、

ackage cn.itcast_if;

 

/*

* 需求:获取三个数据中的最大值

*

* 分析:此案例主要是为了复习if语句的嵌套使用,而且可以任意嵌套。

*/

public
class IfDemo01 {

    public
static
void main(String[] args) {

        // 随便定义三个int类型数据

        int
a = 22;

        int
b = 9;

        int
c = 18;

 

        // if语句实现:

        // 先定义一个int类型max用于接收最大值

        int
max;

        if (a > b) {

            if (a > c) {

                max = a;

            } else {

                if (b > c) {

                    max = b;

 

                } else {

                    max = c;

                }

            }

            System.out.println("这三个数中最大值为:" + max);

        }

    }

}

 

3. Switch语句

Switch语句知识梳理图

相关代码练习:

⑴、

package cn.itcast_switch;

 

//导包

import java.util.Scanner;

 

/*

* 需求:用switch语句实现键盘录入月份,输出对应的季节

*

* 分析:

        A:键盘录入一个月份,用Scanner实现

        B:switch语句实现即可

        

*/

public
class SwitchDemo {

    public
static
void main(String[] args) {

        // 创建键盘录入对象

        Scanner sc = new Scanner(System.in);

 

        // 录入数据

        System.out.println("请输入月份(1-12)");

        int
month = sc.nextInt();

 

        // switch语句判断

        // 此处用到了case的穿透

        switch (month) {

        case 1:

        case 2:

        case 12:

            System.out.println("冬季");

            break;

        case 3:

        case 4:

        case 5:

            System.out.println("春季");

            break;

        case 6:

        case 7:

        case 8:

            System.out.println("夏季");

            break;

        case 9:

        case 10:

        case 11:

            System.out.println("秋季");

            break;

        default:

            System.out.println("你输入的月份有误");

        }

    }

}

 

4. For循环

For循环知识梳理图

相关代码练习:

⑴、

package cn.itcast_for;

 

/*

    需求:统计"水仙花数"共有多少个

    分析:

        A:首先必须知道什么是水仙花数

            所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

            举例:153就是一个水仙花数。

            153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

        B:定义统计变量,初始化值是0

        C:三位数告诉了我们范围,用for循环就可以搞定

        D:获取每一个三位数的个,十,百的数据

        E:按照要求进行判断

        F:如果满足要求就计数。

        

*/

public
class ForDemo01 {

    public
static
void main(String[] args) {

        // 定义统计变量,初始化值是0

        int
count = 0;

 

        // 三位数告诉了我们范围,用for循环

        for (int
i = 100; i < 1000; i++) {

            // 获取一个三位数的个、十、百的数据

            int
ge = i % 10;

            int
shi = i / 10 % 10;

            int
bai = i / 10 / 10 % 10;//
注意此处,一开始是除(\,最后才是模(%

 

            // 按照要求进行判断

            if (i == (ge * ge * ge + shi * shi * shi + bai * bai * bai)) {

                count++;

                System.out.println(i);

            }

            // System.out.println("水仙花数总的个数为:" + count);

        }

    }

}

 

⑵、

package cn.itcast_switch;

 

/*

    需求:请统计1-1000之间同时满足如下条件的数据有多少个:

        3整除余2

        5整除余3

        7整除余2

 

    分析:

        A:定义统计变量,初始化值是0

        B:1-1000之间是一个范围,用for很容易就可以实现。

        C:每个数据要同时满足如下要求

            x%3==2

            x%5==3

            x%7==2

        D:如果满足条件,统计数据++即可,最后输出统计变量

*/

class ForDemo9 {

    public
static
void main(String[] args) {

        // 定义统计变量,初始化值是0

        int
count = 0;

 

        // 1-1000之间是一个范围,用for很容易就可以实现。

        for (int
x = 1; x <= 1000; x++) {

            /*

             * 每个数据要同时满足如下要求 x%3==2 x%5==3 x%7==2

             */

            if (x % 3 == 2 && x % 5 == 3 && x % 7 == 2) {

                count++;

                System.out.println(x);

            }

        }

 

        // 输出数据

        System.out.println("满足这样条件的数据共有:" + count + "");

    }

}

 

5.While . do循环

While . do循环知识梳理图

相关代码练习:

⑴、

package cn.itcast_while;

 

/*

我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m

请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

 

分析:

    A:定义一个统计变量,默认值是0

    B:最高山峰是珠穆朗玛峰:8848m这是最终的厚度

     我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度

    C:我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

     折叠一次有什么变化呢?就是厚度是以前的2倍。

    D:只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++

    E:输出统计变量。

*/

 

class WhileDemo5 {

    public
static
void main(String[] args) {

        // 定义一个统计变量,默认值是0

        int
count = 0;

 

        // 最高山峰是珠穆朗玛峰:8848m这是最终的厚度

        // 我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度

        // 为了简单,我把0.01变成1,同理8848就变成了884800

        int
end = 884800;

        int
start = 1;

 

        while (start < end) {

            // 只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++

            count++;

 

            // 折叠一次有什么变化呢?就是厚度是以前的2倍。

            start *= 2;

 

            System.out.println("" + count + "次厚度是" + start);

        }

 

        // 输出统计变量

        System.out.println("要叠" + count + "");

    }

}

 

6. do…While 循环

do…While 循环知识梳理图

 

7.循环语句区别

循环语句区别知识梳理图

相关代码练习:

⑴、

package cn.itcast_区别;

 

/*

    while循环和for循环的区别?

        使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,

        否则用for循环。不知道用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。

                

        其实还有一种场景的理解:

            如果是一个范围的,用for循环非常明确。

            如果是不明确要做多少次,用while循环较为合适。

*/

class
Demo01 {

    public
static
void main(String[] args) {

        //for循环实现

        for(int
x=0; x<10; x++) {

            System.out.println("学习Java技术哪家强,中国北京传智播客");

        }

        //这里不能在继续访问了

        //System.out.println(x);

        

        //while循环实现

        int
y = 0;

        while(y<10) {

            System.out.println("学习Java技术哪家强,中国北京传智播客");

            y++;

        }

        //这里是可以继续访问的

        System.out.println(y);

    }

}

 

 

⑵、

package cn.itcast_区别;

 

/*

循环语句的区别:

    do...while循环至少执行一次循环体。

    for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。

    

那么,我们一般使用哪种循环呢?

    优先考虑for,其次考虑while,最后考虑do...while

*/

class DoWhileDemo2 {

    public
static
void main(String[] args) {

        int
x = 3;

        while (x < 3) {

            System.out.println("我爱java");

            x++;

        }

 

        System.out.println("--------------");

 

        int
y = 3;

        do {

            System.out.println("我爱java");

            y++;

        } while (y < 3);

    }

}

 

 

7.循环嵌套

代码练习:

package cn.itcast_forfor;

 

/*

需求:在控制台输出九九乘法表。

 

首先我们写出九九乘法表:

    1*1=1

    1*2=2    2*2=4

    1*3=3    2*3=6    3*3=9

    1*4=4    2*4=8    3*4=12    4*4=16

    ...

    1*9=9    2*9=18    3*9=27    ...

    

注意:

    '\x' x表示任意,这种做法叫转移字符。

    

    '\t'    tab键的位置

    '\r'    回车

    '\n'    换行

*/

class ForForDemo {

    public
static
void main(String[] args) {

        // 为了使用数据,我们从1开始

        for (int
x = 1; x <= 9; x++) {

            for (int
y = 1; y <= x; y++) {

                System.out.print(y + "*" + x + "=" + y * x + "\t");

            }

            System.out.println();

        }

    }

}

打印效果图

 

8. 控制跳转语句

控制跳转语句知识梳理图

相关代码练习:

⑴、

package cn.itcast_01;

 

/*

控制跳转语句:

    break:中断

    continue:继续

    return:返回

 

break:中断的意思

使用场景:

    A:switch语句中

    B:循环语句中。

        (循环语句中加入了if判断的情况)

    注意:离开上面的两个场景,无意义。

    

如何使用呢?

    A:跳出单层循环

    B:跳出多层循环

        要想实现这个效果,就必须知道一个东西。带标签的语句。

        格式:

            标签名: 语句

*/

class BreakDemo {

    public
static
void main(String[] args) {

        // switch loop 外部中断

        // break;

 

        // 跳出单层循环

        for (int
x = 0; x < 10; x++) {

            if (x == 3) {

                break;

            }

            System.out.println("HelloWorld");

        }

 

        System.out.println("over");

        System.out.println("-------------");

 

        wc: for (int
x = 0; x < 3; x++) {

            nc: for (int
y = 0; y < 4; y++) {

                if (y == 2) {

                    // break nc;

                    break wc;

                }

                System.out.print("*");

            }

            System.out.println();

        }

    }

}

 

⑵、

package cn.itcast_01;

 

/*

continue:继续

 

使用场景:

    循环中。离开此场景无意义。

    

测试,找到和break的区别:

    break:跳出单层循环

    continue:跳出一次循环,进入下一次的执行

 

*/

class ContinueDemo {

    public
static
void main(String[] args) {

        for (int
x = 0; x < 10; x++) {

            if (x == 3) {

                // break;

                continue;

            }

 

            System.out.println(x);

        }

    }

}

 

⑶、

package cn.itcast_01;

 

/*

return:返回

 

其实它的作用不是结束循环的,而是结束方法的。

*/

class ReturnDemo {

    public
static
void main(String[] args) {

        for (int
x = 0; x < 10; x++) {

            if (x == 2) {

                System.out.println("退出");

                // break;

                // continue;

                return;

            }

 

            System.out.println(x);

        }

 

        System.out.println("over");

    }

}

                                                                                                                                                                                                                                                                                                    2016.07.24

小温

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: