ピザのトッピングの1つがと同じ初期文字を持つ問題があります。 ユーザーが最初の文字の後に"m"
と入力すると、"m"
がmozarellaとして認識され、もう一度認識されないようにするにはどうすればよいですか。Java:2つの入力の最初の文字が同じ
現在、mm
と入力した場合、Your order is: Medium pizza with, Medium pizza with, £8.0
が印刷されますが、Your order is: Medium pizza with,mozarella,£5.0
と印刷します。
public class pizza {
public static void main(String[] args){
pizzaServiceA();
}
public static void pizzaServiceA(){
Scanner input = new Scanner(System.in);
double total = 0;
System.out.println("Enter order:");
String order = input.next();
String pizza = "Your order is: ";
if (order.equals("quit")){
System.out.println("Program exiting.");
System.exit(0);
}
boolean size = false;
for (int x = 0; x < order.length(); x++){
if (order.charAt(0) == 'm' || order.charAt(0) == 'l'){
if (order.charAt(x) == 'm'){
total +=4.00;
pizza += "Medium pizza with,";
size = true;
}
else if (order.charAt(x) == 'l'){
total +=5.00;
pizza +="Large pizza with,";
}
else if (order.charAt(x) == 'h'){
pizza +="ham,";
if (size) total += 1.40;
else total +=2.10;
}
else if (order.charAt(x)== 'o'){
pizza +="olives,";
if(size) total +=0.80;
else total +=1.20;
}
else if (order.charAt(x)=='p'){
pizza+="pineapple,";
if(size) total +=1.00;
else total+=1.50;
}
else if (order.charAt(x)=='s'){
pizza+="spinach,";
if(size) total +=0.80;
else total+=1.20;
}
else if (order.charAt(x)=='m'){
pizza +="mozarella,";
if(size) total =(long) + 1.00;
else total+=1.50;
}
}
else {
System.out.println("Your first character must be m(medium) or l(large)");
}
}
System.out.println(pizza +"£" + String.format("%.2f", total));
}
}
このプログラムに別の方法を使用する必要がある場合は、誰かが使用する必要があるものと使用方法を説明できますか?私はJavaの初心者ですので、まだ学習しており、どんな助けもありがとうございます。
'pizza'が既に' Medium'を文字列に含んでいるかどうかをチェックします。 – tnw
'if'ネストを分割することができます。あなたが最初の文字をサイズとして処理し、その後に文字をトッピングとして扱うようにします。 –
@EricRobinsonどうすればいいですか?今のところ私がやっている方法はブーリアンサイズであり、その真の場合はメディアの合計に加算され、真でない場合は大きなものが加算されるからです。 –