Java测试不工作需要if语句的帮助

Java测试不工作需要if语句的帮助,java,if-statement,Java,If Statement,我正在用Java做一个简单的测验,但是,我遇到了一些麻烦 import java.util.Scanner; public class quiz { public static void main( String[] args ) { Scanner keyboard = new Scanner( System.in ); String q1 = "London"; String a1; int q2 = 20;

我正在用Java做一个简单的测验,但是,我遇到了一些麻烦

import java.util.Scanner;
public class quiz {
    public static void main( String[] args ) {
        Scanner keyboard = new Scanner( System.in );
        String q1 = "London";
        String a1;
        int q2 = 20;
        int a2;
        String q3 = "Java";
        String a3;
        int score = 0;

        System.out.println( "What is the capital of England? ");
        a1 = keyboard.next();
        if(a1 == q1) {
            score + 1;
            System.out.println( "Correct!");
        }
        else if {
            System.out.println( "WRONG!" );
        }

        System.out.println( "What is 10 + 10?" );
        a2 = keyboard.nextInt();
        if(a2 == q2) {
            score + 1;
            System.out.println( "Correct!" );
        }
        else if {
            System.out.println( "WRONG" );
        }

        System.out.println( "What langauge is kevin learning?" );
        a3 = keyboard.next();
        if(a3 == q3) {
            score + 1;
            System.out.println( "Correct!" );
        }
        else if {
            System.out.println( "WRONG" );
        }

        System.out.println( "Your total marks were" score );
    }
}

不正确的
字符串
比较:

if(a1 == q1)
应该是:

if(a1.equals(q1))
同样的故事:

if(a3 == q3)

您必须使用
equals
方法比较字符串
=
不比较字符串,而是比较对象在内存中的位置。 因此,使用
if(a1==q1)代替
if(a1.equals(q1))

编辑:以下是工作代码:

import java.util.Scanner;

public class quiz {
  public static void main( String[] args ) {
        Scanner keyboard = new Scanner( System.in );
        String q1 = "London";
        String a1;
        int q2 = 20;
        int a2;
        String q3 = "Java";
        String a3;
        int score = 0;

        System.out.println( "What is the capital of England? ");
        a1 = keyboard.next();
        if(a1.equals(q1)) {
            score += 1;
            System.out.println( "Correct!");
        }
        else {
            System.out.println( "WRONG!" );
        }

        System.out.println( "What is 10 + 10?" );
        a2 = keyboard.nextInt();
        if(a2 == q2) {
            score += 1;
            System.out.println( "Correct!" );
        }
        else {
            System.out.println( "WRONG" );
        }

        System.out.println( "What langauge is kevin learning?" );
        a3 = keyboard.next();
        if(a3.equals(q3)) {
      score += 1;
            System.out.println( "Correct!" );
        }
    else {
            System.out.println( "WRONG" );
        }

    System.out.println("Your total marks were" + score);
    }
}

有什么问题?可能是Read first的重复。你的问题是废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话,您应该阅读编译器错误,以获取关于如何继续的提示。我尝试过,但当我尝试在cmd中编译它时,它会显示29 errorsWell,然后您还需要修复这些错误。如果它太多,通常是一些}或{缺失的地方。我会看一看并更新我的答案。没关系,我修复了所有问题。谢谢,虽然更新了你的代码以删除编译错误,并修复了我第一次暗示的字符串比较。祝你在学习这门语言的过程中好运。