学习java的17天

这篇博客介绍了四个Java编程问题的解决方案,包括如何找出100-999之间的水仙花数,打印1-60的偶数并每5个换行,按月份输出对应的星座信息,以及绘制特定的对称图形。通过这些实例,读者可以加深对Java循环和条件控制的理解。

【回顾】昨天给了一些经典练习题,今天带上答案我们来探讨下

1.需求实现
获取 3 位数的水仙花数,效果如图所示:

编写步骤:
1. 使用 for 循环获取 100-999 中的每个数字
2. 在 for 循环中获取这个数字的百位
3. 在 for 循环中获取这个数字的十位
4. 在 for 循环中获取这个数字的个位
5. 如果个位的立方 + 十位的立方 + 百位的立方等于这个数本身 , 则打印这个水仙花数字

参考答案:

public class Test6 {
    public static void main(String[] args) {
        // 1.使用for循环获取100‐999中的每个数字
        for(int i = 100 ; i < 1000 ; i++) {
            // 2.for循环中获取这个数字的百位
            int bai = i / 100;
            // 3.for循环中获取这个数字的十位
            int shi = i / 10 % 10;
            // 4.for循环中获取这个数字的个位
            int ge = i % 10;
            // 5.如果个位的立方 + 十位的立方 + 百位的立方等于这个数本身,则打印这个水仙花数
            if(ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                System.out.println(i);
            }
        }
    }
}


2.需求实现
 打印1-60的所有偶数,并且5个一行,效果如图所示:

编写步骤:
1. 定义变量 count 记录打印的数量
2. for 循环获取到 1-60 的偶数
3. 在 for 循环内打印偶数不换行
4. 打印的数量 +1
5. 当打印的数量满足了 5 个就换行

参考答案:

public class Test7 {
    public static void main(String[] args) {
        // 1.定义变量count记录打印的数量
        int count = 0;
        // 2.for循环获取到1‐60的偶数
        for (int i = 2i <= 60i += 2) {
            // 3.for循环内打印偶数
            System.out.print(i + " ");
            // 4.数量+1
            count++;
            // 5.当打印的数量满足了5个就换行
            if (count % 5 == 0) {
                System.out.println();
            }
        }
    }
}


3.需求实现
打印星座信息,效果如图所示:

开发提示:
1-12 的规律数字,可以使用 for 循环处理
根据不同的数字,匹配显示不同的文字,可以使用switch匹配

参考答案:

public class Test8 {
    public static void main(String[] args) {
        // 使用for循环,初始化变量month1,month<=12,进入循环,步进表达式为month自增
        for (int month = 1month <=12month++) {
            // for循环内,输出month变量
 System.out.print(month+":");
            // for循环内,使用switch语句,根据month的值,输出对应的星座
            switch (month) { 
                case 1:
                    System.out.println("水瓶");
                    break;
                case 2:
                    System.out.println("双鱼");
                    break;
                case 3:
                    System.out.println("白羊");
                    break;
                case 4:
                    System.out.println("金牛");
                    break;
                case 5:
                    System.out.println("双子");
                    break;
                case 6:
                    System.out.println("巨蟹");
                    break;
                case 7:
                    System.out.println("狮子");
                    break;
                case 8:
                    System.out.println("处女");
                    break;
                case 9:
                    System.out.println("天秤");
                    break;
                case 10:
                    System.out.println("天蝎");
                    break;
                case 11:
                    System.out.println("射手");
                    break;
                case 12:
                    System.out.println("摩羯");
                    break;
            }
        }
    }
}


4.需求实现
打印『X』对称图形,效果如图所示:

开发提示:
平面图形涉及到有行有列,考虑到嵌套 for 循环
一个外循环控制行,一个内循环控制输出内容
在内循环中,根据变量的变化规律,判断输出 "O" 还是 "*"

参考答案:
public class Test10 {
    public static void main(String[] args) {
        // 定义 for循环,初始化变量x = 1,如果x<=7进入循环,步进表达式x++
        for (int x = 1; x <= 7; x++) {
            // for循环内部,再嵌套定义一套for循环,初始化变量y = 1,如果y<=7进入循环,步进表达式y++
            for (int y = 1; y <= 7; y++) {
                // 在内循环内部,判断x==y 或者 x+y==8 ,则打印"O",否则打印"*"
                if (x == y || x + y == 8) {
                    System.out.print("O");
                } else {
                    System.out.print("*");
                }
            }
            //换行
            System.out.println();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值