0

在学校我不得不做一个计算器程序。在程序中,我们询问用户是否要加、减、乘或除。最后,我们询问用户是否要继续该程序。我还没有放入循环部分,但我这里的问题是显示“你想继续”之后,程序就退出了。

package calculator;

import java.util.Scanner;

public class calculator {

    public static void main(String[] args) {

        {

        int o1; //first operand
        int o2; //second operand

        Scanner input = new Scanner (System.in);
        System.out.println("Enter a choice:");
        System.out.println("+ to add");
        System.out.println("- to subtract");
        System.out.println("* to multiply");
        System.out.println("/ to divide");
        System.out.println("X to exit");
        String userChoice = input.nextLine();

        if (userChoice.equals("X to exit")) {
            System.exit(0);
        }

        System.out.println("Enter the first operand:");
        o1 = input.nextInt();
        System.out.println("Enter the second operand:");
        o2 = input.nextInt();

        if (userChoice.equals("+ to add")) {
            System.out.println( (o1) + (o2) ); }
            else if (userChoice.equals("- to subtract")) {
                System.out.println( (o1) - (o2) ); }
            else if (userChoice.equals("* to multiply")) {
                System.out.println( (o1) * (o2) ); }
            else if (userChoice.equals("/ to divide")) {
                System.out.println( (o1) / (o2) ); }

        System.out.println("Would you like to continue?");
        System.out.println("Yes");
        System.out.println("No");
        String userPick = input.nextLine(); {

        if (userPick.equals("Yes")) {
            System.out.println("Ok."); }
            else if (userPick.equals("No")) {
                System.exit(0); }

        }
        }
        }

        // TODO Auto-generated method stub


}
4

4 回答 4

0

尝试这个:

 Scanner input = new Scanner (System.in);
 while(true){
    System.out.println("Enter a choice:");
    System.out.println("+ to add");
    ......
    if (userPick.equals("Yes")) {
        System.out.println("Ok."); }
        else if (userPick.equals("No")) {
            System.exit(0); }

    }
 }

它将继续围绕逻辑循环,直到满足终止条件。您可能还想在 System.exit(); 之前关闭扫描仪;实际上在任何终止之前。

于 2013-09-07T15:21:46.860 回答
0

您可以在代码前添加一行

String userPick = input.nextLine();哪条线是input.nextLine();

它可以很好地工作,可以接收输入断线。你可以试试。

ps:我的英语不好,我不确定我表达清楚。

于 2013-09-07T15:47:17.000 回答
0
System.out.println("Would you like to continue?");
System.out.println("Yes");
System.out.println("No");
// add this lline, it can make a difference
input.nextLine();
String userPick = input.nextLine();
于 2013-09-07T15:55:56.440 回答
0

您需要while(true) {}在程序中希望它重新启动的地方有一个循环。这样,如果用户说是,您可以回到开头,但如果用户说不,程序将退出。

于 2014-08-02T13:56:43.857 回答