So ist dies ein sonderbares, ich den Code selbst wissen, ist ziemlich nutzlos, aber was ich frage mich, warum ich den Fehler:eine nutzlose lokale Variable deklarieren
ich einige Code schrieb, ich dies geschrieben hatte, :
if(scan.hasNextInt())
int row = scan.nextInt();
War das nicht an der Zeit, über den Geltungsbereich von variablen zu denken, dies offensichtlich nutzlos ist, weil ich nicht row
vorbei am if
ohnehin nutzen kann. Was verstehe ich nicht, warum ich den Fehler habe ich gemacht habe:
> javac hw.java
hw.java:25: '.class' expected
int row = scan.nextInt();
^
hw.java:25: not a statement
int row = scan.nextInt();
^
hw.java:25: illegal start of expression
int row = scan.nextInt();
^
hw.java:25: ';' expected
int row = scan.nextInt();
^
Nun, wenn ich das nur ändern, wenn Scheck an:
if(scan.hasNextInt()) {
int row = scan.nextInt();
}
Es wird gut kompilieren. Ich hatte den Eindruck, dass, wenn es eine Zeile unter der if
gab, die geschweiften Klammern optional waren ... klar, es gibt auch andere Überlegungen, oder beide würden entweder kompilieren oder fehlschlagen.
Könnte mir jemand erklären oder auf ein Dokument verweisen, das erklärt, warum ich keine lokale Variable unter der if
Bedingung ohne die geschweiften Klammern deklarieren kann?
EDIT: Hier ist die volle Funktion:
public static char getinput() {
System.out.println("Where do you want to go? (row column)");
Scanner scan = new Scanner(System.in);
if(scan.hasNextInt())
int row = scan.nextInt();
String input = scan.next();
System.out.println(input);
return 'a';
}
was kommt vor und nach das 'wenn'? –
Bitte schreiben Sie Ihren vollständigen Code hier –
@NikolayKuznetsov - Siehe bearbeiten. – Mike