-7
package Game;

import java.util.Scanner;

public class practice {

    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        String jack = "good, how are you?";
        System.out.println("Hello, my name is Julie the Robot");

        try{
            Thread.sleep(1000);
        }catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
        System.out.println("How Are You?");

        if (jack.equals(sc.nextLine())); {
        System.out.println("Im Doing Great!");
        }
        // this code is giving me an error
        else if (!jack.equals(sc.nextLine()));{


            System.out.println("Oh! So you dont care about me eh?");
        }

        try{
            Thread.sleep(700);
        }catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
            System.out.print("...");
        try{
                Thread.sleep(200);
            }catch(InterruptedException ex1) {
                Thread.currentThread().interrupt();
    }   
        System.out.print("And Yes, I'm A Canadian");



    } 
}

我正在尝试运行这段代码,但它突出显示了 else if 部分,而不是让我运行它。它出什么问题了?

4

3 回答 3

5

;if();{ 和中删除该分号else if ();{

于 2013-06-16T23:51:48.333 回答
1

您错误地使用了分号

if (jack.equals(sc.nextLine()))[;]<--don't need this {
System.out.println("Im Doing Great!");
}
else if (!jack.equals(sc.nextLine()))[;]<--don't need this either{
于 2013-06-16T23:54:05.947 回答
1

解释:

if、else、else if、while、do、for... 的语法继承自 C/C++。

我们将使用 if 的语法作为示例,如下所示:

if (header) statement

什么是声明?声明是这样的:

function();

{ statement1; statement2; }

;

x = x + 1;

用外行的话来说,语句是“一个可执行的代码单元”。请注意,这{...}是一个语句(这里{ }是“这些花括号中的所有内容都应该被视为一个语句”的语法)并且;也只是一个语句(它是什么都不做的语句)。

所以if (condition);评估条件,如果它是真的什么都不做,否则跳过什么都不做。...您可以看到为什么这可能会使您的代码中断。

相似地:

else if (condition);

else;

while (condition);

for (int i = 0; i < count; ++i);

do; { } while (condition);

都被破坏了,因为;被认为是如果条件成立,构造将执行的一个语句。既然您知道这些分号破坏流结构的原因,您将来就可以避免它们并知道原因。

于 2013-06-16T23:58:16.370 回答