Java 为什么我的代码会跳过if语句?

Java 为什么我的代码会跳过if语句?,java,if-statement,java.util.scanner,user-input,Java,If Statement,Java.util.scanner,User Input,我正在发布一段我遇到麻烦的较大代码块。它应该自己运行。为了进行测试,只需在第一个提示符处输入一个。一旦运行print语句,程序就会终止,而不是请求变量。我不明白为什么。有人能帮我吗 import java.util.Scanner; public class Physics { public static void main(String[] args) { Scanner input = new Scanner(System.in); int switchNumber;

我正在发布一段我遇到麻烦的较大代码块。它应该自己运行。为了进行测试,只需在第一个提示符处输入一个。一旦运行print语句,程序就会终止,而不是请求变量。我不明白为什么。有人能帮我吗

import java.util.Scanner;

public class Physics {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int switchNumber;
    String variableCaseOne;
    double distance;
    double initialVelocity;
    double time;
    double gravity;

    System.out.println("This section is for projectile motion.");
    System.out.println("Which equation would you like to use?");
    System.out.println("1. Horizontal Equation: D = Vi * t");
    System.out.println("2. Vertical Equation: D = Vi * t - (1/2)g * (t^2)");
    switchNumber = input.nextInt();
    if (switchNumber == 1) {
      System.out.println("Tell me which variable you'd like to solve for.");
      variableCaseOne = input.nextLine();
      if (variableCaseOne.equals("d")) {
        System.out.println("Enter the Initial velocity.");
        initialVelocity = input.nextDouble();
        System.out.println("Enter the time.");
        time = input.nextDouble();
        System.out.println("Distance equals: " + initialVelocity * time);
      }

    }
  }
}

谢谢大家的帮助

当您输入a 1时,它是否也会终止程序

当:

用开关试试:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int switchNumber;
    String variableCaseOne;
    double distance;
    double initialVelocity;
    double time;
    double gravity;

    System.out.println("This section is for projectile motion.");
    System.out.println("Which equation would you like to use?");
    System.out.println("1. Horizontal Equation: D = Vi * t");
    System.out.println("2. Vertical Equation: D = Vi * t - (1/2)g * (t^2)");        

    switchNumber = input.nextInt();

    switch (switchNumber){

    case 1:   System.out.println("Tell me which variable you'd like to solve for.");
              variableCaseOne = input.next();

              if (variableCaseOne.equals("d")) {
                System.out.println("Enter the Initial velocity.");
                initialVelocity = input.nextDouble();
                System.out.println("Enter the time.");
                time = input.nextDouble();
                System.out.println("Distance equals: " + initialVelocity * time);
              }

    case 2 :  // your next case
    }         
}
Andrea Bori答案是解决您问题的主要方法


当您输入a 1时,它是否也会终止程序

当:

用开关试试:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int switchNumber;
    String variableCaseOne;
    double distance;
    double initialVelocity;
    double time;
    double gravity;

    System.out.println("This section is for projectile motion.");
    System.out.println("Which equation would you like to use?");
    System.out.println("1. Horizontal Equation: D = Vi * t");
    System.out.println("2. Vertical Equation: D = Vi * t - (1/2)g * (t^2)");        

    switchNumber = input.nextInt();

    switch (switchNumber){

    case 1:   System.out.println("Tell me which variable you'd like to solve for.");
              variableCaseOne = input.next();

              if (variableCaseOne.equals("d")) {
                System.out.println("Enter the Initial velocity.");
                initialVelocity = input.nextDouble();
                System.out.println("Enter the time.");
                time = input.nextDouble();
                System.out.println("Distance equals: " + initialVelocity * time);
              }

    case 2 :  // your next case
    }         
}
Andrea Bori答案是解决您问题的主要方法


当您输入a 1时,它是否也会终止程序

当:

用开关试试:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int switchNumber;
    String variableCaseOne;
    double distance;
    double initialVelocity;
    double time;
    double gravity;

    System.out.println("This section is for projectile motion.");
    System.out.println("Which equation would you like to use?");
    System.out.println("1. Horizontal Equation: D = Vi * t");
    System.out.println("2. Vertical Equation: D = Vi * t - (1/2)g * (t^2)");        

    switchNumber = input.nextInt();

    switch (switchNumber){

    case 1:   System.out.println("Tell me which variable you'd like to solve for.");
              variableCaseOne = input.next();

              if (variableCaseOne.equals("d")) {
                System.out.println("Enter the Initial velocity.");
                initialVelocity = input.nextDouble();
                System.out.println("Enter the time.");
                time = input.nextDouble();
                System.out.println("Distance equals: " + initialVelocity * time);
              }

    case 2 :  // your next case
    }         
}
Andrea Bori答案是解决您问题的主要方法


当您输入a 1时,它是否也会终止程序

当:

用开关试试:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int switchNumber;
    String variableCaseOne;
    double distance;
    double initialVelocity;
    double time;
    double gravity;

    System.out.println("This section is for projectile motion.");
    System.out.println("Which equation would you like to use?");
    System.out.println("1. Horizontal Equation: D = Vi * t");
    System.out.println("2. Vertical Equation: D = Vi * t - (1/2)g * (t^2)");        

    switchNumber = input.nextInt();

    switch (switchNumber){

    case 1:   System.out.println("Tell me which variable you'd like to solve for.");
              variableCaseOne = input.next();

              if (variableCaseOne.equals("d")) {
                System.out.println("Enter the Initial velocity.");
                initialVelocity = input.nextDouble();
                System.out.println("Enter the time.");
                time = input.nextDouble();
                System.out.println("Distance equals: " + initialVelocity * time);
              }

    case 2 :  // your next case
    }         
}
Andrea Bori答案是解决您问题的主要方法


如果我理解正确,试着改变

variableCaseOne=input.nextLine()

variableCaseOne=input.next()

它对我有用

snpt


如果我理解正确,试着改变

variableCaseOne=input.nextLine()

variableCaseOne=input.next()

它对我有用

snpt


如果我理解正确,试着改变

variableCaseOne=input.nextLine()

variableCaseOne=input.next()

它对我有用

snpt


如果我理解正确,试着改变

variableCaseOne=input.nextLine()

variableCaseOne=input.next()

它对我有用

snpt

可能的重复可能的重复可能的重复可能的重复