手记

java03-3 for循环语句

for循环格式:

                  for(初始化语句;判断条件语句;控制条件语句) {

                            循环体语句;

                  }       

执行流程:

                  A:执行初始化语句

                  B:执行判断条件语句,看其返回值是true还是false

                            如果是true,就继续执行

                            如果是false,就结束循环

                  C:执行循环体语句;

                  D:执行控制条件语句

                  E:回到B继续。                        

注意事项:

                  A:判断条件语句无论简单还是复杂结果是boolean类型。

                  B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。

                  C:一般来说:有左大括号就没有分号,有分号就没有左大括号

下面练习:

1、需求:在控制台输出数据1-10

[代码]java代码:

?

1

2

3

4

5

6

7

8

9

class LianShou{

    public static void main(String[]   args)

    {

        for(int i=1;i<=10;i++) //需求是输出1-10

        {

            System.out.println(i);

        }

    }

}

2、需求:求出1-10之间数据之和

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

/*

 需求:求出1-10的和

 分析:0+1=1

            1+2=3

                3+3=6

                    6+4=10

                        10+5=15

                             ...

 可以看得出来   第一个加数永远是前面加法的结果

              第二个加数则是从1开始递增的

*/

?

01

02

03

04

05

06

07

08

09

10

11

12

class LianShou{

    public static void main(String[]   args)

    {

        int sum = 0;//定义sum一定要在for循环外面,因为后面输出sum,

                //不能在for的大括号内,那样输出调用不了sum。

        for(int i=1;i<=10;i++)

        {

            sum   += i;  // sum = sum + i;

        }

        System.out.println(sum);

    }

}

3、需求:

                  A:求1-100之和。

                  B:求出1-100之间偶数和

                  C:求出1-100之间奇数和

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

class LianShou{

    public static void main(String[]   args)

    {  

        int sum1 = 0;

        for(int i=1;i<=100;i++)

        {

            sum1   += i;

        }

        System.out.println("1=100的和是:"+sum1); //输出语句要跳出for循环语句,不然会每次i++都会输出一次

         

        int sum2 = 0;

        for(int i=1;i<=100;i++)

        {

            if(i   % 2 == 0)

            {

                sum2   += i;

            }

            }

            System.out.println("1-100之间的偶数和是:" + sum2);

             

        int sum3 = 0;

        for(int i=0;i<=100;i++)

        {

            if(i   % 2 ==1)

            {

                sum3   += i;

            }        

        }    

        System.out.println("1-100之间的奇数和是:" + sum3);

    }  

}

4、求5的阶乘。

         什么是阶乘呢?

         n! = n*(n-1)!   规则

         n! = n*(n-1)*(n-2)*...*3*2*1

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

/*

和求1-5的和差不多,只不过是符号改变而已

*/

class LianShou{

    public static void main(String[]   args)

    {

        int jc = 1;

        for(int i=1;i<=5;i++)

        {

            jc   *= i;

        }

        System.out.println("1-5的阶层是:"+jc);

    }

}

5、需求:在控制台输出所有的”水仙花数”

     分析:

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

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

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

 

                  A:三位数其实是告诉了我们范围。

                  B:通过for循环我们就可以实现获取每一个三位数

                    但是麻烦是如何获取这个三位数的个,十,百位上的数据

                    

                    我们如何获取一个数据的个,十,百呢?

                            假设有个一个数据:153

                            ge:    153%10 = 3

                            shi: 153/10%10 = 5

                            bai:153/10/10%10 = 1

                            qian:x/10/10/10%10

                            wan:  x/10/10/10/10%10

                            ...

 

                  C:让ge*ge*ge+shi*shi*shi+bai*bai*bai和该数据比较

                    如果相同,就把该数据在控制台输出。

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

class LianShou{

    public static void main(String[]   args)

    {

        for(int i=100;i<=999;i++)

        {

            int ge = i%10;

            int shi = i/10%10;

            int bai = i/100%10;

            if(i==(ge*ge*ge+shi*shi*shi+bai*bai*bai))   // i == ,两个=

            {

                System.out.println("水仙花数有:"+ i);

            }

        }

    }

}

6、需求:统计”水仙花数”共有多少个

     分析:

         前面部分跟5一样,只不过这里要的是“水仙花数”有几个,

         所以每一次计算出水仙花数时,都要定一个变量+1,再到最后输出这个变量

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

class LianShou{

    public static void main(String[]   args)

    {

        int count = 0 ;//计数变量

        for(int i=100;i<=999;i++)

        {

            int ge = i%10;

            int shi = i/10%10;

            int bai = i/100%10;

             

            if(i==(ge*ge*ge+shi*shi*shi+bai*bai*bai))   // i == ,两个=

            {

                count   ++; //有一个,就自增1

            }

        }

        System.out.println("水仙花数一共有:"+ count +"个");//输出一定要跳出for循环。。

    }

}

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

                            对3整除余2

                            对5整除余3

                            对7整除余2

跟上面6差不多,只不过count++的条件改变成上面那3个

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

class LianShou{

    public static void main(String[]   args)

    {

        int count = 0;

        for(int i=1;i<=1000;i++) //记得 int

        {

            if(i%3==2 && i%5==3 && i%7==2)

            {

                count   ++;

            }

        }

        System.out.println("1=1000同时满足这3个条件的数有:"+count+"个");

    }

}

原文链接:http://www.apkbus.com/blog-833059-61639.html

0人推荐
随时随地看视频
慕课网APP