If statement If语句的最大数量?
所以我对java非常陌生。我一直在用扫描仪测试用户输入,搞乱一些if语句。当我运行程序时,四个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
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”案例的“}”之后。只是一个很好的练习,不是必需的。谢谢。我有点想这会是一件很明显的事情。没问题,有时候需要另一双眼睛才能看到这些东西。