2012-02-14 18 views
0

ここに私のコードです。出力は常にelseステートメント(JAVA)を出力します

import java.util.Scanner; 

public class ORR_P02 { 
public static void main(String args[]){ 

    String input; 
    char medium1; 
    double distance; 

    Scanner medium = new Scanner(System.in);//Scanner for user input of the type of medium 
    Scanner traveled = new Scanner(System.in);//Scanner for the distance traveled 

    System.out.print("Please enter the type of medium (Air, Water, Steel):"); 
    input = medium.next().toLowerCase(); 

    //this was to make sure it was changing it to lower case 
    System.out.println(input); 

    if (input == "air"||input == "water"||input == "steel"){ 

     //used to get the first character of the input they had to match the switch case 
    medium1 = input.charAt(0); 

    switch (medium1) 
    { 
    case 'a': 
     System.out.println("Please enter the distance here:"); 
     break; 
    case 'w': 
     System.out.println("Please enter the distance here:"); 
     break; 
    case 's': 
     System.out.println("Please enter the distance here:"); 
     break; 


    } 

    } 
    else{ 
     System.out.println("Incorrect type of medium entered."); 
    } 
    } 
} 

私がしたいことは、ユーザーが何かを入力したときに、 if文と一致しない場合は、else文だけが出力されます。唯一の問題は、何に関係なく常にelseステートメントを出力することです。

入力が空気、水、またはスチールと同じであれば、間にswitch文を実行したいと思います。それがcharAtが存在する理由です。どのようにこれを達成するための任意のアイデア? Javaで

答えて

2
if ("air".equals(input)||"water".equals(input)|| "steel".equals(input)){ 

文字列の比較は

+0

ああ、OK。どうもありがとうございました。注目される。 –

0

Don't use == ==ない、対等でなければなりません。静的java.util.Set<String>

if (input.equals("air") || ...) { 

または、:

if (valid.contains(input)) { 
+0

ありがとうございます。今働いた。 –

関連する問題