Vì vậy, đây là một trong những kỳ lạ, tôi biết mã chính nó là khá vô dụng, nhưng những gì tôi đang tự hỏi tại sao tôi nhận được thông báo lỗi:Khai báo một biến địa phương vô dụng
tôi đang viết một số mã, tôi đã viết này :
if(scan.hasNextInt())
int row = scan.nextInt();
Chẳng phải suy nghĩ về phạm vi biến vào thời điểm đó, rõ ràng điều này là vô ích bởi vì tôi không thể sử dụng row
quá khứ if
anyway. Những gì tôi không nhận được là lý do tại sao tôi đã nhận lỗi tôi đã làm:
> 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();
^
Bây giờ nếu tôi chỉ cần sửa đổi rằng nếu chi phiếu đến:
if(scan.hasNextInt()) {
int row = scan.nextInt();
}
Nó sẽ biên dịch tốt. Tôi đã được ấn tượng rằng nếu có 1 dòng dưới if
các dấu ngoặc nhọn là tùy chọn ... rõ ràng có những cân nhắc khác là tốt hoặc cả hai sẽ biên dịch hoặc thất bại.
Ai đó có thể giải thích cho tôi hoặc chỉ cho tôi tài liệu giải thích tại sao tôi không thể khai báo biến cục bộ theo số if
có điều kiện không có dấu ngoặc nhọn?
EDIT: Dưới đây là đầy đủ chức năng:
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';
}
những gì đi kèm trước và sau rằng 'if'? –
Vui lòng viết mã hoàn chỉnh của bạn tại đây –
@NikolayKuznetsov - Xem phần chỉnh sửa. – Mike