2017-02-28 2 views
-2

Ich habe Probleme, dieses Programm zu beenden. Ich verstehe, was das Programm tun soll, aber ich habe Probleme, es zu beenden. Ich habe meinen Code unten veröffentlicht.Wie kann ich dieses Programm mit einer While-Schleife schreiben?

Für dieses Programm muss ich feststellen, ob eine Zahl eine Primzahl ist. Ein Teil davon ist, dass ich den Benutzer auffordern muss, einen Bereich (z. B. 1-10) einzugeben und anzuzeigen, welche Zahlen prim sind und welche nicht.

Das ist, was ich bisher haben ...

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."); 
     } 

    } 
} 
+1

Sie sollten, dass num1 ist nicht gleich der Zahl überprüfen, um Sie die Modulo einnehmen. –

+0

Was für eine clevere Formatierung! Ich war dabei, das '' '' nach deinem 'while' zu ​​kommentieren, aber dann erkannte ich, dass die' while'-Zeile die letzte Klausel einer 'do-while'-Schleife ist und keine eigenständige while-Schleife. – shoover

Antwort

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); 
    } 
} 
Verwandte Themen