Java 系统。退出(0)不工作

Java 系统。退出(0)不工作,java,Java,我已经编写Java代码很短一段时间了,所以我不知道为什么我的System.exit(0)命令不起作用 该程序测试用户的一年级或二年级数学。它接收两个“随机”数字,用户回答算术问题。当程序询问用户是否要再次播放时,输入N表示否似乎不会在包含System.exit(0)的if语句中注册。程序只是重新启动,就像用户输入Y一样 import java.util.*; class Tester { public static void main (String[] args)

我已经编写Java代码很短一段时间了,所以我不知道为什么我的
System.exit(0)
命令不起作用

该程序测试用户的一年级或二年级数学。它接收两个“随机”数字,用户回答算术问题。当程序询问用户是否要再次播放时,输入N表示否似乎不会在包含System.exit(0)的if语句中注册。程序只是重新启动,就像用户输入Y一样

import java.util.*;


    class Tester {
        public static void main (String[] args) {

            SuperRandom randomNumberGenerator = new SuperRandom();

            Scanner scan = new Scanner (System.in);

            int selection, q1_1, q1_2, q1_3, q1_4, q1_5, questans;

            int score = 0;

            int a;

            int b, i;

            String scanchoice;

            String choice = "Y";

            final int numberOfQuestions = 5;

            int getNextRandom;

            int answer;

            while (choice == "Y"){

                System.out.println ("Welcome to Math Tester 2.0.");

                System.out.println ("");

                System.out.println ("Please enter your grade level:");

                System.out.println ("1. 1st Grade Test");

                System.out.println ("2. 2nd Grade Test");

                System.out.println ("3. Quit Math Tester 2.0");

                    selection = scan.nextInt();

                        if (selection == 1) {

                                System.out.println ("Enter: " +selection);

                                System.out.println ("");

                                for (i=1; i<=5; i++){

                                    a = randomNumberGenerator.getNextRandom(numberOfQuestions);

                                    b = randomNumberGenerator.getNextRandom(numberOfQuestions);

                                    System.out.println ("What is " +a + " + " +b + "?");

                                    answer = a+b;

                                    questans = scan.nextInt();

                                    System.out.println("" +questans);

                                        if (questans == answer){

                                            score++;        
                                        }

                                }   

                                System.out.println ("");

                                System.out.println ("Max points possible: 5.");

                                System.out.println ("Your score: " +score);

                                System.out.println ("Do you wish to play again (Enter Y for Yes or N for No)?");

                                    choice = scan.next();

                                        if (choice = "N") {

                                            System.out.println ("Goodbye!");

                                            System.exit(0); //Exits program if user entered N.
                                        }
                                        if (choice = "Y");

                                            choice = "Y";
                                        }   


                    if (selection == 2){

                        System.out.println ("Enter: " +selection);

                        System.out.println ("");    

                    }

                    if (selection == 3){

                        System.out.println ("Goodbye!");

                        System.exit(0);
                    }


            }

        }

    }
import java.util.*;
类测试员{
公共静态void main(字符串[]args){
SuperRandom randomNumberGenerator=新的SuperRandom();
扫描仪扫描=新扫描仪(System.in);
整型选择,q1_1,q1_2,q1_3,q1_4,q1_5,魁斯坦;
智力得分=0;
INTA;
int b,i;
字符串扫描选择;
字符串选择=“Y”;
最终整数问题=5;
int getNextRandom;
int答案;
while(选项==“Y”){
System.out.println(“欢迎使用Math Tester 2.0”);
System.out.println(“”);
System.out.println(“请输入您的等级:”);
System.out.println(“1.一级测试”);
System.out.println(“2.二级测试”);
System.out.println(“3.退出数学测试仪2.0”);
selection=scan.nextInt();
如果(选择==1){
System.out.println(“输入:”+选择);
System.out.println(“”);
for(i=1;i
System.exit()
不会在代码中执行,因为您的
if/else
条件不正确。
使用
equals
进行字符串比较,而不是==。

根据Juned Ahsan'anwer中的注释,您应该将
=
更改为
=
.equals()
例如,在这一行中
if(choice=“N”){
应该是
if(choice.equals(“N”){
虽然
==
在您的情况下不起作用,但您应该使用
.equals()

=
是一个赋值运算符,其中as
==
是一个关系运算符

它是否打印再见!?Prateek它不打印再见?这是你的答案。选择永远不会等同于3次重复?发布答案而不是重复投票?@LuiggiMendoza我发布此消息是因为他声称System.exit不起作用。以使他了解该行从未执行过。问题很明显:字符串比较是错误的。在修复该错误后,它应该会起作用=\n现在,在修复if语句的比较后,我得到了错误“cannot convert String To boolean”。@user2873202共享您的最新代码。