获得一个没有'if'错误的'else',我不知道怎么做

时间:2013-08-05 05:34:29

标签: java

以下代码会导致语法错误'else' without 'if'。 我也无法从if语句中删除分号,因为它也会给我一个错误,告诉我我错过了分号。

import java.util.Scanner;

class cake {
    public static void main(String[] args) {
        byte age, height;
        Scanner in = new Scanner(System.in);

        System.out.println("How old are you?");
        age = in.nextByte();

        System.out.println("How tall are you?");
        height = in.nextByte();

        if (age >= 10) && (height >= 48); {
            System.out.println("You can ride!");        
        } else {
            System.out.println("You cannot ride!");
        }   
    }
}

9 个答案:

答案 0 :(得分:9)

if (age >= 10) && (height >= 48); 

查看最后添加; 的行,if语句未正确附加。因此,将两个语句括在单个paranthesis中并删除; ,现在语句变为

if ((age >= 10) && (height >= 48)) {

请阅读此链接:Semicolon at end of 'if' statement

答案 1 :(得分:5)

您需要将所有内容放在括号内

 if ((age >= 10) && (height >= 48)) {

答案 2 :(得分:2)

你需要做

if ((age >= 10) && (height >= 48)) {
        System.out.println("You can ride!");        
    } else {
        System.out.println("You cannot ride!");
    }

因为需要在(age>=10) && (height >= 48)块中完全评估表达式if

答案 3 :(得分:0)

用此代码替换你的if --- else条件

if ((age >= 10) && (height >= 48)) {
        System.out.println("You can ride!");        
    } else {
        System.out.println("You cannot ride!");
    } 

答案 4 :(得分:0)

')'删除分号后你有分号。这是主要问题。

   if (age >= 10) && (height >= 48); 

答案 5 :(得分:0)

我建议您使用nextInt代替nextByte。另外写一下if语句,如if((age >= 10) && (height >= 48))

这可以解决你的问题!

答案 6 :(得分:0)

替换

 if (age >= 10) && (height >= 48)

 if ((age >= 10) && (height >= 48))

答案 7 :(得分:0)

if ((age >= 10) && (height >= 48))

而不是

if (age >= 10) && (height >= 48);

看看:compile time error messages

答案 8 :(得分:0)

这是你修改过的代码,我刚刚添加了()@If条件的第一个和最后一个

现在工作正常。

import java.util.Scanner;

class Cake {
    public static void main(String[] args) {
        byte age, height;
        Scanner in = new Scanner(System.in);

        System.out.println("How old are you?");
        age = in.nextByte();

        System.out.println("How tall are you?");
        height = in.nextByte();

        if ( (age >= 10) && (height >= 48) ) {
            System.out.println("You can ride!");        
        } else {
            System.out.println("You cannot ride!");
        }   
    }
}

但我必须告诉你的一件事是“你有多高?不接受十进制数字。