java - 类型开始非法且预期为 ";"

标签 java if-statement syntax-error

我正在尝试在这里编写一个程序,一开始有 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 .

有时这些错误可能会令人困惑。一些提示:

  1. 从报告错误的行开始,仔细地向后查找,检查是否有细微的问题。
  2. 使用一个不错的编辑器,可以显示匹配的括号。 Notepad++对于基础编辑器来说是一个不错的选择。
  3. 如果您的编辑器支持自动缩进,请将其打开。您可以通过发现缩进问题来​​捕获此类问题。

如果可能的话,有时您还可以考虑重构代码,以使其更加清晰。例如,如果您想坚持您输入的年龄在范围内:

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/

相关文章:

JAVA用对象填充临时Arraylist,然后将其添加到由arrayLists组成的ArrayList

sql - 使用Where和if else的存储过程

Swift - 如何检查 Sprite 是否已分配给特定图像

bash - 无法让 ASCII 艺术回显到控制台

java - Java 中的意外结果( float 为整数)

java - vaadin - 无法打开java文件(eclipse)

ios - Switch 语句 VS If 语句

bash |在另一台计算机上运行脚本时出现语法错误?

json - 发生错误时如何更改响应?

java - 从库扩展 Android Activity