2016-05-11 12 views
-1

Ich bin ziemlich neu zu programmieren. Ich brauche es zu sagen "Gib den Buchstaben q ein, um zu beenden oder irgendeinen anderen Schlüssel, um fortzufahren:" am Ende. Wenn Sie q eingeben, wird es beendet. Wenn Sie ein anderes Zeichen eingeben, werden Sie aufgefordert, eine andere positive ganze Zahl einzugeben.Notwendigkeit, Java mit dem Buchstaben zu schließen q

import java.util.Scanner; 

public class TimesTable { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 


     System.out.println("Enter a postive integer: "); 
     int tableSize = input.nextInt(); 
     printMultiplicationTable(tableSize); 

    } 
    public static void printMultiplicationTable(int tableSize) { 
     System.out.format("  "); 
     for(int i = 1; i<=tableSize;i++) { 
      System.out.format("%4d",i); 
     } 
     System.out.println(); 
     System.out.println("------------------------------------------------"); 

     for(int i = 1 ;i<=tableSize;i++) { 
      System.out.format("%4d |",i); 
      for(int j=1;j<=tableSize;j++) { 
       System.out.format("%4d",i*j); 
      } 
      System.out.println(); 
     } 
    } 
} 
+0

eine while-Schleife mit 'String haben wollen Ihren Job – Helios

Antwort

0

dies tun, um die Benutzereingabe

Info einen Brief haben:
System.exit (0) beendet das Programm ohne Fehlercode.
nextLine() wartet auf die Eingabe des Strings durch den Benutzer und drückt die Eingabetaste.
nextInt() wartet auf die Eingabe von int durch den Benutzer und drückt die Eingabetaste.
Hoffe das hilft!

Scanner input = new Scanner(System.in); 
String i = input.nextLine(); 
if(i.equalsIgnoreCase("q")) { 
    System.exit(0); 
}else { 
    System.out.println("Enter a postive integer: "); 
    int i = input.nextInt(); 
    //continue with your code here 
} 
0

Das sieht aus wie Hausaufgaben ;-)

Eine Möglichkeit, dieses Problem zu lösen, ist der Code zu setzen, die Ihre Nachrichten drucken und akzeptieren Ihre Eingabe innerhalb einer while-Schleife, vielleicht so etwas wie:

Scanner input = new Scanner(System.in); 
byte nextByte = 0x00; 
while(nextByte != 'q') 
{  
    System.out.println("Enter a postive integer: "); 
    int tableSize = input.nextInt(); 
    printMultiplicationTable(tableSize); 
    System.out.println("Enter q to quit, or any other key to continue... "); 
    nextByte = input.nextByte(); 
} 
+0

Stephen q' zu überprüfen tun, habe ich versucht, Ihre Lösung, aber es wird mir nicht erlauben um q oder irgendwelche anderen Zeichen nach der Schleife zu verwenden. –

0

verwenden, um eine do-while-Schleife im Hauptverfahren, wie unten

do { 
     System.out.println("Enter a postive integer: "); 
     String tableSize = input.next(); 

     if (!"q".equals(tableSize)) 
      printMultiplicationTable(Integer.parseInt(tableSize)); 

    }while (!"q".equals(input.next())); 
    input.close(); 

Sie würde auch eine try-catch Block zu behandeln Number

+0

Das hat ziemlich gut funktioniert. Jetzt brauche ich nur noch "q eingeben, um zu beenden oder ein anderes Zeichen, um fortzufahren:" Unter der Tabelle –

+0

@ChrisM. cool, nimm bitte die Antwort an –