【问题标题】:How can I finish writing this program using a while loop?如何使用 while 循环完成编写这个程序?
【发布时间】:2017-02-28 18:01:52
【问题描述】:

我无法完成这个程序。我了解该程序应该做什么,但我无法完成它。我在下面发布了我的代码。

对于这个程序,我需要确定一个数字是否是质数。其中一部分是,我需要要求用户输入一个范围(例如 1-10)并显示哪些数字是素数,哪些不是。

这就是我目前所拥有的......

import java.util.Scanner;
public class PrimeNumbers
{
    public static void main(String[]args)
    {
        //Create Scanner Object
        Scanner input = new Scanner(System.in);

        //Initialize variable 
        double num1, range;


        //Prompt the user to enter in a number
        do
        {
            System.out.println("Please enter in a number:");
            num1 = input.nextDouble();

            //Decision making
            if(num1 % 2 == 0 || num1 % 3 == 0 || num1 % 4 == 0 || num1 % 5 == 0 || num1 % 6 == 0 || num1 % 7 ==0 || num1 % 8 ==0 || num1 % 9 == 0)
            {
                //Display message
                System.out.println(num1 + " is not a prime number.");

                System.out.println("Please enter a range: ");
                range = input.nextInt();

                if ()
            }

            else
                //Display output
                System.out.println(num1 + " is prime.");

        }

        while(num1 == -1);
        {
            System.out.println("This program has now ended.");
        }

    }
}

【问题讨论】:

  • 你应该检查一下 num1 不等于你取模的数字。
  • 多么巧妙的格式!我正要在while 之后评论;,但后来我意识到while 行是do-while 的后一个子句,而不是独立的while 循环。

标签: java loops for-loop while-loop do-while


【解决方案1】:

http://beginnersbook.com/2014/01/java-program-to-display-prime-numbers/

import java.util.Scanner;
class PrimeNumbers2
{
   public static void main (String[] args)
   {        
      Scanner scanner = new Scanner(System.in);
      int i =0;
      int num =0;
      //Empty String
      String  primeNumbers = "";
      System.out.println("Enter the value of n:");
      int n = scanner.nextInt();
      for (i = 1; i <= n; i++)         
      {                   
         int counter=0;           
         for(num =i; num>=1; num--)
         {
        if(i%num==0)
        {
        counter = counter + 1;
        }
     }
     if (counter ==2)
     {
        //Appended the Prime number to the String
        primeNumbers = primeNumbers + i + " ";
     }  
      } 
      System.out.println("Prime numbers from 1 to n are :");
      System.out.println(primeNumbers);
   }
}

【讨论】:

    【解决方案2】:

    这是在特定范围内显示素数的代码,

    import java.util.Scanner;
    
    public class JavaPrograms 
    {
       public static void main(String[] args) 
       {
          Scanner sc = new Scanner(System.in); 
          System.out.print("Please enter the first number : "); 
          int start = sc.nextInt(); 
          System.out.print("Please enter the second number : "); 
          int end = sc.nextInt(); 
          System.out.println("List of prime number in java between " + start + " and " + end + " : "); 
          for(int a = start; a <= end; a++) 
          { 
             if(checkPrime(a)) 
             { 
                System.out.println(a); 
             } 
          }
          sc.close();
       }
     
       public static boolean checkPrime(int number) 
       { 
          if(number <= 1) 
          { 
             return false; 
          } 
          for(int a = 2; a <= Math.sqrt(number); a++) 
          { 
             if(number % a == 0) 
             { 
                return false; 
             } 
          } 
          return true; 
       } 
    }
    

    有关素数 java 程序的更多信息,请参阅 this 资源。

    【讨论】:

      猜你喜欢
      • 2021-11-04
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 2013-07-09
      • 2021-08-20
      • 1970-01-01
      • 2020-03-05
      相关资源
      最近更新 更多