零基础学java第五天

第四天的课程有循环里经常使用的几个跳转语句break、continue和return;最后就是循环里的难点,多重循环

一、多重循环
        1、多重循环指一个循环语句体中再包含循环语句,又称嵌套循环。循环语句内可以嵌套多层循环。同时不同的循环语句可以相互嵌套。
        2、语法:

while(循环条件1){
    循环语句1
    for(循环条件2){
        循环语句2
    }
}

这是while语句和for语句的嵌套例子,其中while循环称外层循环,for循环称内层循环。
●各循环可相互嵌套
●一般不超过三层
外层循环变量变化一次,内层循环变量变化一遍

二、跳转语句
1、break语句
        break语句可以使流程跳出while或for循环的本层循环,特别是多层次循环结构中,利用“break”可以提前结束内层循环
       
2、continue语句
        “continue”语句被用来跳过循环中本次循环快中剩余的语句,然后执行下一次循环。

说明: 
break只会出现在switch和循环语句中,没有其他使用场合。
●continue只能用于循环语句中
●break和continue两者功能类似,continue是终止本次循环,继续进行下一次循环;而break是终止本层循环
●break和continue之后都不能有其他语句,因为程序永远不会执行其后的语句。

3、return语句
        并非专门用来结束循环的,它的功能是结束一个方法!当一个方法执行到return时,这个方法将被结束。
        直接结束方法,不管这个return处于多少层循环。

三、练习题
今天的题目有点小难,冲

题目一:

编写一个程序,使用循环计算并输出1到n之间所有整数的平方和,其中n是用户输入的正整数。

题目二:

编写一个程序,使用循环计算并输出n的阶乘,其中n是用户输入的正整数。

题目三:

编写一个程序,使用循环判断一个给定的正整数是否为素数(只能被1和自身整除的数)。

题目四:

编写一个程序,使用循环计算并输出1到100之间所有偶数的和。

题目五:

编写一个程序,使用循环计算并输出1到n之间所有奇数的乘积,其中n是用户输入的正整数。

题目六:

编写一个程序,使用循环打印出如下图案:

*********

 *******

  *****

   ***

    *

题目七:

编写一个程序,使用循环判断一个给定的正整数是否为回文数(正向和反向读都相同,例如121、12321)。

题目八:

编写一个程序,使用循环计算并输出斐波那契数列的前n项,其中n是用户输入的正整数。

题目九:

编写一个程序,使用循环打印出如下图案:

    1

   232

  34543

 4567654

567898765

题目十:

编写一个程序,使用循环打印出所有的水仙花数。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

//第一题:控制台输入一个数,求他的平方和
        System.out.print("请输入一个数:");
        int n = input.nextInt();
        int sum = 0;//存放总和
        for (int i = 1; i <= n; i++) {
            int num = 0;//存放每一个加数
            num = i * i;
            sum += num;
        }
        System.out.println(n + "的平方和是:"+sum);

        //第二题,求阶乘
        System.out.print("请输入一个正整数:");
        int n1 = input.nextInt();
        int sum1 = 1;
        for (int i = 1; i <= n1; i++) {
            sum1 *= i;
        }
        System.out.println( n1+ "的阶乘是:" + sum1);

        //第三题输出1~100所有质数,只能被1和他本身整除
        for (int i = 2; i <= 100; i++) {
            int count = 0;
            for (int j = 2; j <= i; j++) {
                if (i % j == 0) {
                    count++;
                }
            }
            if (count == 1) {
                System.out.println(i);
            }
        }

        //第四题,输出1~100偶数和
        int sum2 = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                sum2 += i;
            }
        }
        System.out.println("1~100所有偶数和是:" + sum2);

        //第五题,求1到n3之间所有奇数的成乘积
        System.out.print("请输入一个正整数:");
        int n3 = input.nextInt();
        int sum3 = 1;
        for (int i3 = 1; i3 <= n3; i3++) {
            if (i3 % 2 != 0) {
                sum3 *= i3;
            }
        }
        System.out.println("1到" + n3 + "之间所有奇数的乘积是:" + sum3);

        //第六题,倒三角
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(" ");
            }
            for (int j = 9; j >= 2*i-1 ; j--) {
                System.out.print("*");
            }
            System.out.println();
        }

        //第七题,键盘输入任意正整数,判断是否是回文数(如121,12321)
        System.out.print("请输入一个正整数:");
        int num7 = input.nextInt();
        int count = 0;//计算被整除的次数
        for (int i = num7;  i> 0; i/=10) {
            count++;
        }
        int k = 1;
        int weiSshu ;//各个位数
        int newNum = 0;//存放反转的数
        int geWei = num7 % 10;
        //实现反转
        for (int i = 1; i < count; i++) {
            k = k * 10;
            weiSshu = (num7 / k )% 10;
            for (int j = 1; j < count-i; j++) {
                weiSshu *= 10;
            }
            geWei *= 10;
            newNum += weiSshu;
        }
        newNum = newNum + geWei;//反转后的数
        if (newNum == num7) {
            System.out.println("是回文数!");
        } else {
            System.out.println("不是回文数!");
        }

        //第八题,输出斐波那契数列的前n项(兔子序列)
        System.out.print("请输入一个正整数:");
        int n4 = input.nextInt();
        int result1 = 0;//存放总数
        int j = 1;//存放上上一个月的数量
        int k3 = 1;//存放上一个月的数量
        if (n4<=2) {
            for (int i = 1; i <= n4; i++) {
                result1 = 1;
                System.out.println(result1);
            }
        } else {
            //前两个月
            for (int i = 1; i <= 2; i++) {
                result1 = 1;
                System.out.println(result1);
            }
            //第二个月之后的
            for (int i1 = 3; i1 <= n4; i1++) {
                for ( j = 1; j < k3; j++) {
                }
                for ( k3 = 1 ;k3 < result1; k3++) {
                }
                result1 = j + k3;//前两个月相加
                System.out.println(result1);
            }
        }

        //第九题,打印数字三角形
         /* 1
           232
          34543
         4567654
        567898765 */
        System.out.print("请输入行数:");
        int line2 = input.nextInt();
        for (int i = 1; i <= line2; i++) {
            for (int j1 = 1; j1 <= line2 - i; j1++) {
                System.out.print(" ");
            }
            for (int n2 = i; n2 <= 2 * i - 1; n2++) {
                System.out.print(n2);
            }
            for (int kk = 2*i-2; kk >= i ; kk--) {
                System.out.print(kk);
            }
            System.out.println();
        }

        //第十题,输出所有水仙花数,各个位数的立方之和等于它本身
        int ge, shi, bai;
        for (int i = 100; i < 1000; i++) {
            ge = i % 10;
            shi = i / 10 % 10;
            bai = i / 100;
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                System.out.println(i);
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2302_79286849

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值