If statement If语句的最大数量?

If statement If语句的最大数量?,if-statement,statements,If Statement,Statements,所以我对java非常陌生。我一直在用扫描仪测试用户输入,搞乱一些if语句。当我运行程序时,四个if语句中有三个可以工作。第四个作为第三个运行。。。我不知道这是为什么。这是我的密码。希望你们有一些建议 import java.io.*; import java.util.Scanner; public class TestFile5 { public static void main(String[] args) throws IOExceptio

所以我对java非常陌生。我一直在用扫描仪测试用户输入,搞乱一些if语句。当我运行程序时,四个if语句中有三个可以工作。第四个作为第三个运行。。。我不知道这是为什么。这是我的密码。希望你们有一些建议

    import java.io.*;
    import java.util.Scanner;

    public class TestFile5
    {
        public static void main(String[] args) throws IOException
    {
    //Have two choices? Simple and complicated?  Simple example = input (X) input.  Complicated = below
    Scanner user_input = new Scanner(System.in);

    System.out.println("Choose calculation type: Long or Short");

    String choicetype;
    System.out.print("Type: ");
    choicetype = user_input.next();

    String selection;
    if(choicetype.equals("Long"))
    {
        System.out.println("Selection: Long");
        System.out.println(" ");

        System.out.println("This is a calculator");
        System.out.println("First select type of function");
        System.out.println("1: Addition");
        System.out.println("2: Subtraction");
        System.out.println("3: Multiplication");
        System.out.println("4: Division");

        System.out.print("Selection: ");
        selection = user_input.next();



        if(selection.equals("Addition"))
        {
            System.out.println("Enter two numbers to add");
            int first_number;
            System.out.print("1: ");
            first_number = user_input.nextInt();
            int second_number;
            System.out.print("2: ");
            second_number = user_input.nextInt();

            System.out.println(first_number + second_number);

            System.exit(0);
        }
        if(selection.equals("Subtraction"))
        {
            System.out.println("Enter two numbers to subtract");
            int first_number;
            System.out.print("1: ");
            first_number = user_input.nextInt();
            int second_number;
            System.out.print("2: ");
            second_number = user_input.nextInt();

            System.out.println(first_number - second_number);

            System.exit(0);
        }
        if(selection.equals("Multiplication"));
        {
            System.out.println("Enter two numbers to multiply");
            int first_number;
            System.out.print("1: ");
            first_number = user_input.nextInt();
            int second_number;
            System.out.print("2: ");
            second_number = user_input.nextInt();

            System.out.println(first_number * second_number);

            System.exit(0);
        }
        //Does Not work.  Trys to multiply
        if(selection.equals("Division"))
        {
            System.out.println("Enter two numbers to divide");
            int first_number;
            System.out.print("1: ");
            first_number = user_input.nextInt();
            int second_number;
            System.out.print("2: ");
            second_number = user_input.nextInt();

            System.out.print("Answer: ");
            System.out.print(first_number / second_number);

            System.exit(0);
        }
    }
    if(choicetype.equals("Short"))
    {
        System.out.println("Selection: Short");
        System.out.println("");
    }
  }
}

要回答这个问题,没有可以实现的if语句的最大数量

我怀疑您的代码不起作用,因为出现以下错误:

if(selection.equals("Multiplication"));
不应该有一个“;”在那里-它终止if语句,并导致乘法块在上述ifs不为真的所有情况下执行(感谢System.exit(0)-如果程序在每个“ifs”中都没有exit,则每次由于此错误选择任何选项时都会执行乘法块代码)


旁注:

此外,值得注意的是,else-ifs甚至switch语句可能更适合这段代码

当你有一堆“如果”,如果有一个以上的情况是真的,他们都执行。如果它是一个“如果”后跟“如果”-链中只有一个会执行

下面是关于switch语句的快速教程,这是另一个可行的选项:


此外,如果一行代码跨所有块共享,最好将该行放在所有场景的末尾。例如,System.exit(0)发生在四个ifs的末尾-为了减少冗余,最好将该行下移到这些选项的底部-就在“Division”案例的“}”之后。只是一个很好的练习,不是必需的。

谢谢。我有点想这会是一件很明显的事情。没问题,有时候需要另一双眼睛才能看到这些东西。