2016-09-28 76 views
-1

程序假设要求用户输入水,空气和钢的元素。然后,他们必须输入他们想要走多远。我遇到的问题是我不能让元素等于空气,所以它可以执行公式。我知道if-else是一团糟,是我试图弄清楚什么可行。任何答复赞赏。将用户输入与if语句的字符串进行比较

public static void main(String[] args) { 

    Scanner sc=new Scanner(System.in); 
    System.out.println("enter an element of water,air,or steel");   

    String element=sc.next(); 
    System.out.println("how far do you want it to travel, dont use any unit of measurment"); 
    double distance=sc.nextInt(); 
    double time1=distance/1100; 
    double time2=distance/4900; 
    double time3=distance/16400;  

      if (element.equals(air)){ 
       System.out.println("the time is "+time1);  } 
      else if(element.equals.water) 
       System.out.println("the time is "+time2); 

      else if(element.equals.steel) 
       System.out.println(time3); 





     } 

} 
+0

你能澄清你的问题吗? –

+0

我需要的是要求用户输入一个元素。水,空气或钢铁。那么我不得不问他们有多远想要去那里。然后,我会匹配他们进入空气,水或钢铁的东西。所以如果他们做了空气它会吐出“时间是”时间1 =距离/ 1100。我的麻烦是试图让元素变量与空气,水或钢铁相匹配。 Alex Chermenin给了我一个有效的答案。 – ChunkierLizard

+0

这是一个更好的问题,请编辑上面的问题并放入文本。谢谢! –

回答

2

只需使用element.equalsIgnoreCase("air")或例如验证码:

switch (element.toLowerCase()) { 
    case "air": ... 
    case "water": ... 
    case "steel": ... 
} 
+0

它的工作原理,谢谢你的答案。 – ChunkierLizard

1

你为什么忽略引号,而比较字符串?这是它应该看起来如何:

if (element.equals("air")) { 
    System.out.println("the time is " + time1); 
} else if (element.equals("water")) 
    System.out.println("the time is " + time2); 
else if (element.equals("steel")) 
    System.out.println(time3); 
+0

我试图自己学习java,所以我不知道这些。谢谢您的回答。 – ChunkierLizard

相关问题