2016-10-23 3 views
1

選択できるサービスのリストがあります。ユーザーがリストからサービスを入力する必要があり、選択した内容とコストが出力されます。値が一致するようにパラレルアレイを検索する

これは私のコードであり、正しくコンパイルされていますが、入力ボックスに配列内のものを正確に入力するたびに無効な入力を出力し続けるのはなぜか分かりません。

アイデア?

import javax.swing.*; 
public class CarCareChoice 
{ 
    public static void main(String[] args) 
    { 
     final int NUM_OF_ITEMS = 4; 
     String[] validChoices = {"oil change", "tire rotation", "battery check", "brake inspection"}; 
     double[] prices = {25, 22, 15, 5}; 
     String strOptions; 
     String careChoice; 
     double choicePrice = 0.0; 
     boolean validChoice = false; 
     strOptions = JOptionPane.showInputDialog(null, "Please enter one of the following care options: oil change, tire rotation, battery check, or brake inspection"); 
     careChoice = strOptions; 
     for(int x = 0; x < NUM_OF_ITEMS; ++x) 
     { 
     if(careChoice == validChoices[x]) 
     { 
      validChoice = true; 
      choicePrice = prices[x]; 
     } 
    } 
    if(validChoice) 
     JOptionPane.showMessageDialog(null, "The price of a " + careChoice + " is $" + choicePrice); 
    else 
     JOptionPane.showMessageDialog(null, "Sorry - invalid entry"); 

    } 
} 

答えて

0
import javax.swing.*; 
public class CarCareChoice 
{ 
    public static void main(String[] args) 
    { 

     // ... 

     for(int x = 0; x < NUM_OF_ITEMS; ++x) 
     { 
     if(careChoice.equals(validChoices[x])) 
     { 
      validChoice = true; 
      choicePrice = prices[x]; 
     } 
    } 
    if(validChoice) 
     JOptionPane.showMessageDialog(null, "The price of a " + careChoice + " is $" + choicePrice); 
    else 
     JOptionPane.showMessageDialog(null, "Sorry - invalid entry"); 

    } 
} 

あなたは==String Sを比較することはできません。代わりに、String.equals()メソッドを使用する必要があります。

+0

それは...いつも未来の人々が見ることができる答えとしてAlex204マーク@ – Alex204

+0

感謝ささいなことです。 – Charles

+0

それはそうするためにあなたが10分待つように、私はそれに取り組んでいる – Alex204

0

Javaでは、文字列を==と比較することはできません。

しかしこれは動作します:

validChoices[x].equals(careChoice) 
0

これがあなたが探していた最高の回答であることを希望します。

import javax.swing.*; 
public class CarCareChoice 
{ 
    public static void main(String[] args) 
    { 
     final int NUM_OF_ITEMS = 4; 
     String[] validChoices = {"oil change", "tire rotation", "battery check", "brake inspection"}; 
     double[] prices = {25, 22, 15, 5}; 
     String strOptions; 
     int careChoice; 
     double choicePrice = 0.0; 
     boolean validChoice = false; 
     strOptions = JOptionPane.showInputDialog(null, "Please enter one of the following care options: oil change, tire rotation, battery check, or brake inspection"); 
     careChoice = Integer.valueOf(strOptions); 
     System.out.println("care choice :" + careChoice); 
     if(careChoice < validChoices.length){ 
     validChoice = true; 
     choicePrice = prices[careChoice-1]; 
     } 
    if(validChoice) 
     JOptionPane.showMessageDialog(null, "The price of a " + careChoice + " is $" + choicePrice); 
    else 
     JOptionPane.showMessageDialog(null, "Sorry - invalid entry"); 

    } 
} 

希望は、これは動作します:)

関連する問題