A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭娇珍 中级黑马   /  2012-12-24 11:52  /  1871 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

需求:从1循环到50并在每行打印一个值,并且要在3的倍数上加“foo”,5的倍数上加“biz”,7的倍数上加“baz”.如

QQ截图20121224115145.png (5.88 KB, 下载次数: 43)

QQ截图20121224115145.png

8 个回复

正序浏览
while少了一个等号
那既是3的倍数又是5的倍数的情况呢
往后面叠加
回复 使用道具 举报
  1. 1       
  2. 2       
  3. 3        foo
  4. 4       
  5. 5         biz
  6. 6        foo
  7. 7         baz
  8. 8       
  9. 9        foo
  10. 10         biz
  11. 11       
  12. 12        foo
  13. 13       
  14. 14         baz
  15. 15        foo biz
  16. 16       
  17. 17       
  18. 18        foo
  19. 19       
  20. 20         biz
  21. 21        foo baz
  22. 22       
  23. 23       
  24. 24        foo
  25. 25         biz
  26. 26       
  27. 27        foo
  28. 28         baz
  29. 29       
  30. 30        foo biz
  31. 31       
  32. 32       
  33. 33        foo
  34. 34       
  35. 35         biz baz
  36. 36        foo
  37. 37       
  38. 38       
  39. 39        foo
  40. 40         biz
  41. 41       
  42. 42        foo baz
  43. 43       
  44. 44       
  45. 45        foo biz
  46. 46       
  47. 47       
  48. 48        foo
  49. 49         baz
复制代码
回复 使用道具 举报
  1. package org.niit.test;

  2. import org.junit.Test;

  3. public class Test3 {
  4.         /**
  5.          * 从1循环到50并在每行打印一个值, 并且要在3的倍数上加“foo”,5的倍数上加“biz”,7的倍数上加“baz”.如
  6.          */
  7.         @Test
  8.         public void test1() {
  9.                 int i = 1;
  10.                 while (i < 50) {
  11.                         String str = "";
  12.                         if (i % 3 == 0) {
  13.                                 str += "foo";
  14.                         }
  15.                         if (i % 5 == 0) {
  16.                                 str += " biz";
  17.                         }
  18.                         if (i % 7 == 0) {
  19.                                 str += " baz";
  20.                         }
  21.                         System.out.println(i + "\t" + str);
  22.                         i++;
  23.                 }
  24.         }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
崔政 + 1

查看全部评分

回复 使用道具 举报
刘经鹏 发表于 2012-12-24 13:34
public class Demo {

        public static void main(String[] args) {

这也是我的思路,恩分就让给你了
回复 使用道具 举报
public class Demo {

        public static void main(String[] args) {

                for(int i = 1; i <= 50; i++){
                        if(i % 3 == 0){
                                System.out.println(x+" foo");
                        }
                       
                        if(i % 5 == 0){
                                System.out.println(x+" biz");
                        }
                        if(i % 7 == 0){
                                System.out.println(x+" baz");
                        }
                        System.out.println(x);

                        
                        

                }
        }
}
让数据多次判断就可以了。
回复 使用道具 举报
你是说像15,30之类的数字吗?那里面都包括了啊,你又没规定能同时被整除的前边加什么,我就把他放到第一个条件上了
回复 使用道具 举报
周亮 发表于 2012-12-24 12:56
class Demo1 {
        public static void main(String[] args) {
               

那既是3的倍数又是5的倍数的情况呢
回复 使用道具 举报
class Demo1 {
        public static void main(String[] args) {
               
                for(int x=1;x<=50;x++){
                        if(x%3==0){
                                System.out.println("foo"+x);
                                continue;
                        }else if(x%5==0){
                                System.out.println("biz"+x);
                                continue;
                        }else if(x%7==0){
                                System.out.println("baz"+x);
                                continue;
                        }else{
                                System.out.println(x);
                        }
                       
                }
        }
}
在这个里面一定要注意if 语句的用法,其后的小括号内是一个布尔类型的判断语句,当判断条件为真的话,才会运行方法块内的代码,但是你这个题目要求是一个循环判断,因而要使用continue,让程序继续往下走,看看对你有没有帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马