回 帖 发 新 帖 刷新版面

主题:[讨论]请教:我用for语句编了一个小程序想分别用while和do_while改写

输出1到1000之间,所有可以被3整除又可以被7整除的数
public class Ex2_2
    {
       public static void main (String args[])
       {
          int n,num,num1;
          System.out.println("在1~1000可被3与7整除的为");
          for (n=1;n<=1000;n++)
          {
             num =n%3;
             num1=n%7;
             if (num==0)
             {
                if (num1==0)
                   System.out.print(n+" ");                  
             }
          }
          System.out.println(" ");     
       }
    }
怎么才能最简练的分别用while和do_while改编这个程序呢

回复列表 (共4个回复)

沙发

    public class Ex2_2
    {
       public static void main (String args[])
       {
          System.out.println("在1~1000可被3与7整除的为");
          
          int n = 1;
          while (n <=1000)
          {
                if (n%3 == 0 && n%7 == 0)
                    System.out.print(n+" ");            
                n++;
          }
          System.out.println(" ");    
       }
    }

板凳

    public class Ex2_2
    {
       public static void main (String args[])
       {
          System.out.println("在1~1000可被3与7整除的为");
          
          int n = 1;
          do
          {
                if (n%3 == 0 && n%7 == 0)
                    System.out.print(n+" ");            
                n++;
          }    while (n <=1000);
          System.out.println(" ");    
       }
    }

3 楼

其实有更好的.因为能够同时被3和7整除的数肯定是21的倍数,所以程序可以写成:
    public class Ex2_2
    {
       public static void main (String args[])
       {
          System.out.println("在1~1000可被3与7整除的为");
          
          for (int i=21; i<=1000; i+=21)
                    System.out.print(i+" ");            
                    
          System.out.println(" ");    
       }
    }

4 楼

非常感谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册