2016-11-24 4 views
-2

Ich soll einen Code erstellen, der nach dem Namen des Benutzers fragt, nach einer Nummer zwischen eins und zehn fragt, bis ich die Nummer in diesem Bereich erhalte, und dann die Zahlen von 1 bis zur Nummer, die der Benutzer eingegeben hat, außer jeder dritten Zahl ausgeben Der Name des Benutzers, der am Anfang des Programms eingegeben wurde. Zum Beispiel, wenn die Zahl 4 und der Name ist Tom der Ausgang sein wird:For-Schleife, um fortlaufende Nummern zu drucken?

1 
    2 
    Tom 
    4 

Ich bin zu kämpfen, um herauszufinden, wie der dritten Teil zu tun. Ich würde lieber eine for-Schleife verwenden. Kann mir jemand erklären, wie ich das machen könnte? Hier ist was (kleines) ich bisher habe.

import java.util.Scanner; 

/** 
* 
* @author Home 
*/ 
public class NewClass { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 

     System.out.print("Enter your name: "); 
     String name = scan.nextLine(); 

     System.out.print("Please enter a number between 1 and 10: "); 
     number = scan.nextInt(); 

     while (number >= 1 && number <= 10) 

Antwort

0

versuchen dieses

Scanner scan = new Scanner(System.in); 
System.out.print("Enter your name: "); 
String name = scan.nextLine(); 

System.out.print("Please enter a number between 1 and 10: "); 
int number = scan.nextInt(); 

//asks for a number between one and ten until I get number within that range, 
while (number < 1 || number > 10) { 
    System.out.print("No, between 1 and 10: "); 
    number = scan.nextInt(); 
} 


for (int i = 1; i <= number; i++) { 
    if (i % 3 == 0) { 
     System.out.print(name + " "); 
    } else { 
     System.out.print(i + " "); 
    } 
} 

Ausgabe

Enter your name: Tom 
Please enter a number between 1 and 10: 21 
No, between 1 and 10: 7 
1 2 Tom 4 5 Tom 7 
1

Dies ist nicht zu schwierig, mit dem Modulo-Operator % und einem for-Schleife zu erreichen. Das % Zeichen gibt im Grunde den Rest einer Division. So zum Beispiel 12%3 0 und 13%3 ist 1.

for(int i = 1; i < number ; i++){ 
    if(i%3 == 0) // This is the modulus operator, it gives the remainder 
    { 
    System.out.print(name); 
    } else { 
    System.out.print(i); 
    } 
} 

Um zu überprüfen, ob der Eingang 10 als zehn Sie ein, wenn else-Anweisung, bevor diese verwenden können. Oder Sie können Ihre Eingabe in eine Schleife wickeln, bis der Benutzer die richtige Antwort gibt:

while (number < 1 || number > 10) { 
    System.out.print("Only accept numbers between 1-10"); 
    number = scan.nextInt(); 
} 

Obwohl es zu einer Endlosschleife führen würde. Sie könnten dem Benutzer eine begrenzte Anzahl von Versuchen geben.

+0

* für eine Zahl zwischen eins und zehn fragt, bis ich Zahl innerhalb dieses Bereichs erhalten, * - muss eine Schleife –

+0

@ScaryWombat Siehst du im Code keine for-Schleife? – Steephen

+0

@Steephen Nicht sicher, wohin Ihr Kommentar geleitet wird. Als ich meinen Kommentar machte gab es keine Schleife codiert –

0
Scanner scan = new Scanner(System.in); 

    System.out.print("Enter your name: "); 
    String name = scan.nextLine(); 

    System.out.print("Please enter a number between 1 and 10: "); 
    int number = scan.nextInt(); 

    while (number < 1 || number > 10) { 
     System.out.print("Please enter a number between 1 and 10: "); 
     number = scan.nextInt(); 
    } 

    for (int i = 1; i <= number; i++) { 
     if (i % 3 == 0) { 
      System.out.print(name + " "); 
     } else { 
      System.out.print(i + " "); 
     } 
    } 
+1

Vorsicht die Endlosschleife –

+0

@ cricket_007 bearbeitet, danke. –

Verwandte Themen