如何使用带有if语句的扫描程序让我的代码跳过用户输入,

时间:2017-11-20 18:48:49

标签: java equation

我正在使用扫描仪询问用户输入(压力,体积,温度,摩尔数),但我在IF语句中解决了两个不同的方程式。我试图让它只询问所需的变量而不是所有变量。例如,解决Moles,我只需要压力,气体,温度和体积。我不需要问用户“痣数”,因为这是我想要解决的问题。有人可以协助吗?谢谢,

import java.util.Scanner;

/**
 *
 * @author 261141
 */
public class IdealGasLaw1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

      Scanner s = new Scanner(System.in); 
      Scanner in = new Scanner(System.in);

      String answer;

      System.out.println("What do you want to solve for?");   
      answer = s.nextLine();


      System.out.print("Pressure? (in Torr) ");
      double pressure = in.nextDouble();

      System.out.print("Volume? (in liters) ");
      double volume = in.nextDouble();

      System.out.print("Temp ? (in Kelvin) ");
      double temp = in.nextDouble();

      System.out.print("Moles? ");
      double moles = in.nextDouble();

      double gas = 62;

      double PresAns = (pressure)*(volume)/gas * (temp+273);
      double MoleAns = (pressure)*(moles);

      if (answer.equals("Moles" )) { 
          System.out.println("Moles =" +MoleAns +" moles");            
      } 
      else 
          System.out.println("Pressure =: "+PresAns +" Torr");
    }   
}

2 个答案:

答案 0 :(得分:0)

使用answer来决定是否需要痣。例如:

double moles = 0;
if (!answer.equalsIgnoreCase("Moles")) {   // note the use of the NOT symbol
  System.out.print("Moles? ");
  moles = in.nextDouble();
}

此外,molesif语句之外声明,必须初始化,否则代码不会编译。尝试类似其他输入变量。

答案 1 :(得分:0)

请查看这是否适合您。我使用了if子句来检查用户输入是什么(摩尔/压力)。基于此,程序会询问用户不同的输入。

import java.util.Scanner;

/**
 *
 * @author 261141
 */
public class IdealGasLaw1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

      Scanner s = new Scanner(System.in); 
      Scanner in = new Scanner(System.in);

      String answer;
      double gas = 62;
      System.out.println("What do you want to solve for?");   
      answer = s.nextLine();

      System.out.print("Pressure? (in Torr) ");
      double pressure = in.nextDouble();

      if(answer.equals("Moles")) {
          System.out.print("Moles? ");
          double moles = in.nextDouble();
          double MoleAns = (pressure)*(moles);
          System.out.println("Moles =" +MoleAns +" moles");            
      }
      else if(answer.equals("Pressure")) {

          System.out.print("Volume? (in liters) ");
          double volume = in.nextDouble();
          System.out.print("Temp ? (in Kelvin) ");
          double temp = in.nextDouble();
          double PresAns = (pressure)*(volume)/gas * (temp+273);
          System.out.println("Pressure =: "+PresAns +" Torr");
      }


    }   
}