首页 文章

为什么此代码会打印所有if语句条件?

提问于
浏览
-2

我是Java的新手,我正在尝试编写一个基本的计算器 .

但是,在下面的代码中,当我输入任何值时,它会打印if块中的所有语句 . 我觉得无论我写的是什么,都符合所有的条件,因此打印所有的陈述,但我看不出我做错了什么 .

import java.util.Scanner;

public class calculate {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    //variable to store user input
    String userinputOperation;
    int userinputNumber;
    int userinputNumber2; 
    int result;

    //user input variables
    Scanner myscanner = new Scanner(System.in);
    Scanner number1 = new Scanner(System.in);
    Scanner number2 = new Scanner(System.in);

    //different options for calculator i.e., add, subtract, divide, multiply.
    String one = "Add"; // addition
    String two = "Subtract"; // subtract
    String three = "Multiply"; // multiplication
    String four = "Divide"; // division
    String five = "Exit the application."; // exit

    //explain how to use application
    System.out.print("Welcome to Barney's Calculator.");
    System.out.println(" What would you like to do?");
    System.out.println("Write 'one' to add two numbers.");
    System.out.println("Write 'two' to subtract two numbers.");
    System.out.println("Write 'three' to multiply two numbers together.");
    System.out.println("Write 'four' to divide two numbers.");
    System.out.println("Write 'five' to exit.");



    //obtain user input
    userinputOperation = myscanner.nextLine();

    //explain what user has selected
    if (userinputOperation.equals("one")); //add
    System.out.print("You have chosen to " + one + " two numbers");

    if (userinputOperation.equals("two")); //subtract
    System.out.print("You have chosen to " + two + " two numbers");

    if (userinputOperation.equals("three")); //multiply
    System.out.print("You have chosen to " + three + " two numbers");

    if (userinputOperation.equals("four")); //divide
    System.out.print("You have chosen to " + four + " two numbers");

    if (userinputOperation.equals("five")); //exit
    System.out.print("You have chosen to " + one);

    //obtain what the numbers the user wants to operate with

    System.out.println("Input the first number you want to operate with: ");
    userinputNumber = number1.nextInt();

    System.out.println("Input the second number you want to operate with: ");
    userinputNumber2 = number2.nextInt();

    //calculate stuff

    if (userinputOperation == "one"); //add the numbers
    result=(userinputNumber + userinputNumber2);
    System.out.print(result);

    if (userinputOperation == "two"); //subtract the numbers
    result=(userinputNumber - userinputNumber2);
    System.out.print(result);

    if (userinputOperation == "three"); //multiply
    result=(userinputNumber * userinputNumber2);
    System.out.print(result);

    if (userinputOperation == "four"); //add
    result=(userinputNumber / userinputNumber2);
    System.out.print(result);


}

}

任何帮助将不胜感激 .

2 回答

  • 0

    你在每个if语句中都有 ;

    if (userinputOperation.equals("one")); //add
    

    如果你保留 ; 则表示结束语句 . 甚至 ifuserinputOperation.equals("one")); 返回 false 这将被执行 System.out.print("You have chosen to " + one + " two numbers"); 同样删除每个 ;if 语句结束

    最终代码如下

    import java.util.Scanner;
    
    public class calculate {
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
        //variable to store user input
        String userinputOperation;
        int userinputNumber;
        int userinputNumber2; 
        int result;
    
        //user input variables
        Scanner myscanner = new Scanner(System.in);
        Scanner number1 = new Scanner(System.in);
        Scanner number2 = new Scanner(System.in);
    
        //different options for calculator i.e., add, subtract, divide, multiply.
        String one = "Add"; // addition
        String two = "Subtract"; // subtract
        String three = "Multiply"; // multiplication
        String four = "Divide"; // division
        String five = "Exit the application."; // exit
    
        //explain how to use application
        System.out.print("Welcome to Barney's Calculator.");
        System.out.println(" What would you like to do?");
        System.out.println("Write 'one' to add two numbers.");
        System.out.println("Write 'two' to subtract two numbers.");
        System.out.println("Write 'three' to multiply two numbers together.");
        System.out.println("Write 'four' to divide two numbers.");
        System.out.println("Write 'five' to exit.");
    
    
    
        //obtain user input
        userinputOperation = myscanner.nextLine();
    
        //explain what user has selected
        if (userinputOperation.equals("one")) //add
        System.out.print("You have chosen to " + one + " two numbers");
    
        if (userinputOperation.equals("two")) //subtract
        System.out.print("You have chosen to " + two + " two numbers");
    
        if (userinputOperation.equals("three")) //multiply
        System.out.print("You have chosen to " + three + " two numbers");
    
        if (userinputOperation.equals("four")) //divide
        System.out.print("You have chosen to " + four + " two numbers");
    
        if (userinputOperation.equals("five")) //exit
        System.out.print("You have chosen to " + one);
    
        //obtain what the numbers the user wants to operate with
    
        System.out.println("Input the first number you want to operate with: ");
        userinputNumber = number1.nextInt();
    
        System.out.println("Input the second number you want to operate with: ");
        userinputNumber2 = number2.nextInt();
    
        //calculate stuff
    
        if (userinputOperation == "one") //add the numbers
        result=(userinputNumber + userinputNumber2);
        System.out.print(result);
    
        if (userinputOperation == "two") //subtract the numbers
        result=(userinputNumber - userinputNumber2);
        System.out.print(result);
    
        if (userinputOperation == "three") //multiply
        result=(userinputNumber * userinputNumber2);
        System.out.print(result);
    
        if (userinputOperation == "four") //add
        result=(userinputNumber / userinputNumber2);
        System.out.print(result);
    
    
    }
    
    }
    
  • 0

    删除语句末尾的 ; . 如果在语句后没有添加 {} ,它只会将下一个语句放在if块中 . 在这种情况下,您有一个空语句,一个分号 .

    转过来

    if (userinputOperation.equals("one"));
    System.out.print("You have chosen to " + one + " two numbers");
    

    进入这个

    if (userinputOperation.equals("one"))
    System.out.print("You have chosen to " + one + " two numbers");
    

    甚至更好,因为它使它更清晰,添加括号

    if (userinputOperation.equals("one")){
        System.out.print("You have chosen to " + one + " two numbers");
    }
    

相关问题