wie verwende ich bei java scanner if bedingungen, um bedingungen zu prüfen?
bspw. will ich, dass in der main klasse, wenn ich in der konsole was eingebe, ein attribut einer anderen Klasse zb Time oder Date ein konkreter Wert zugewiesen wird. Muss ich vorher ein Objekt erzeugen?
1 Antwort
Also kommt drauf an, was für Bedingungen
import java.util.Scanner;
...
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), //Nimmt den nächsten Integer aus der Konsole
String s = sc.next(); //Nimmt den nächsten String
//Hier kannst du mit If-Bedingungen auf Werte überprüfen
if(n == 3){ ... }
if(s.equals("...")){ ... }
imsonoah
30.11.2021, 13:01
@Denkschulen
Dann machst du es eben nacheinander oder du manipulierst den String so, dass du den Integer aus dem String ziehst ^^
@imsonoah
aber wie mache ich es hintereinander? String input = scanner.next() + int n = scanner.nextInt(); ?
imsonoah
30.11.2021, 13:10
@Denkschulen
Nein, so nicht.
String s = scanner.next();
int n = scanner.nextInt();
Davor kannst du noch System.out.println(String ...) verwenden, um den Nutzer es leichter zu machen, das Programm zu verstehen :D.
@imsonoah
aber wenn er zb "exit" angibt, will ich, dass das programm endet, ohne das man noch eine zahl eingeben muss
imsonoah
30.11.2021, 13:20
@Denkschulen
Okay, hier bitteschön :)
package ...;
import java.util.Scanner;
public class DeineKlasse {
public static void main(String[] args) {
start();
}
public static void start() {
int choice = abfrage("Wählen Sie unter folgenden Optionen: ...");
String name = abfrageString("Bitte geben Sie ihren Namen ein.");
if(choice < 0 || choice > 3) {
System.out.println("Fehler, bitte geben Sie eine Zahl von 0 bis 3 ein.");
start();
return;
}
switch(choice) {
case 0:
...
break;
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
}
}
public static String abfrageString(String text) {
System.out.println(text + "\n>>> ");
Scanner sc = new Scanner(System.in);
return sc.next();
}
public static int abfrage(String text) {
System.out.println(text + "\n>>> ");
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
}
Du hast das System.in beim initialisieren des Scanners vergessen