我正在尝试在这里编写一个程序,一开始有 23 个错误,我设法将其减少到 7 个错误,但根本不知道如何消除它们。错误信息如下:
Exercise1Lab5.java:58: error: illegal start of type
else
^
Exercise1Lab5.java:58: error: ';' expected
else
^
Exercise1Lab5.java:59: error: illegal start of type
System.out.println("\nYou Are Either Too Old or Too Young!");
^
Exercise1Lab5.java:59: error: ';' expected
System.out.println("\nYou Are Either Too Old or Too Young!");
^
Exercise1Lab5.java:59: error: invalid method declaration; return type required
System.out.println("\nYou Are Either Too Old or Too Young!");
^
Exercise1Lab5.java:59: error: illegal start of type
System.out.println("\nYou Are Either Too Old or Too Young!");
^
Exercise1Lab5.java:65: error: class, interface, or enum expected
}
^
7 errors
我的代码是:
/**
* @(#)Exercise1Lab5.java
*
*
* @author
* @version 1.00 2014/11/3
*/
import java.util.Scanner;
public class Exercise1Lab5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float age, height, weight;
String genderAns, recordAns, certAns, courseAns;
char y, n, m, f;
System.out.print("\nPlease Enter Your Age: ");
age = input.nextFloat();
if(age>=18 && age<35){
System.out.print("\nPlease Enter Your Height: ");
height = input.nextFloat();
if(height>=1.6){
System.out.print("\nPlease Enter Your Weight In 'KG': ");
weight = input.nextFloat();
if(weight>=100){
System.out.print("\nPlease Enter Your Gender <m or f>?: ");
genderAns = input.nextLine();
if(((genderAns.equals('m')) && (weight<100) && (height>=1.85)) || ((genderAns.equals('f')) && (weight<100) && (height>=1.6))){
System.out.print("\nDo You Have A Criminal Record <y or n>?: ");
recordAns = input.nextLine();
if(recordAns.equals('n'))
System.out.print("\nDid You Receive At Least A D Grade In Pass Irish In The Leaving Cert <y or n>?: ");
certAns = input.nextLine();
System.out.print("\nDo You Commit To Taking A 10-Week Irish Course on Application <y or n>?: ");
courseAns = input.nextLine();
}
else
System.out.println("\nYou Cannot Have A Criminal Record!");
}
else
System.out.println("\nThus Far You Do Not Meet The Requirements!");
}
else
System.out.println("\nYou Need To Be Under 100KG In Weight!");
}
else
System.out.println("\nYou Are Not Tall Enough!");
}
else
System.out.println("\nYou Are Either Too Old or Too Young!");
}
}
如果有人能够阐明这些错误并帮助我,我将非常感激,谢谢!!
最佳答案
你的括号不匹配。这里:
if(recordAns.equals('n'))
System.out.print("\nDid You Receive At Least A D Grade In Pass Irish In The Leaving Cert <y or n>?: ");
certAns = input.nextLine();
您需要一个{
之后if
.
有时这些错误可能会令人困惑。一些提示:
- 从报告错误的行开始,仔细地向后查找,检查是否有细微的问题。
- 使用一个不错的编辑器,可以显示匹配的括号。 Notepad++对于基础编辑器来说是一个不错的选择。
- 如果您的编辑器支持自动缩进,请将其打开。您可以通过发现缩进问题来捕获此类问题。
如果可能的话,有时您还可以考虑重构代码,以使其更加清晰。例如,如果您想坚持您输入的年龄在范围内:
do {
System.out.print("\nPlease Enter Your Age: ");
age = input.nextFloat();
} while (age < 18 || age >= 35);
在该代码块之后,可以保证 age >= 18 && age < 35
.
关于java - 类型开始非法且预期为 ";",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896658/