`我必须编写一个代码,用户将输入美元金额和货币(美元将在其中转换),例如 15 日元,其中 15 是美元金额,日元是要转换的位置。我的代码仅在第一个 for 循环将扫描字符串并将其分割,但在第二个 for 循环中进行转换将不起作用。
for(i=0;i<=3;i++){
temp = sc.nextLine();
Temp = temp.split(" ");
}
for(i=0,j=1;i<=3;i+=2,j+=2){
switch (Temp[j]) {
case "PHP":
conversion = Double.parseDouble(Temp[i])*51.23;
System.out.println("$"+Temp[0]+" CONVERTS TO "+df.format(conversion)+" PHP.");
break;
case "POUNDS":
conversion = Double.parseDouble(Temp[i])*0.84;
System.out.println("$"+Temp[2]+" CONVERTS TO "+df.format(conversion)+" POUNDS.");
break;
case "LIRA":
conversion = Double.parseDouble(Temp[i])*2040;
System.out.println("$"+Temp[4]+" CONVERTS TO "+df.format(conversion)+" LIRA.");
break;
case "FRANCS":
conversion = Double.parseDouble(Temp[i])*9.85;
System.out.println("$"+Temp[6]+" CONVERTS TO "+df.format(conversion)+" FRANCS.");
break;
case "MARKS":
conversion = Double.parseDouble(Temp[i])*3.23;
System.out.println("$"+Temp[8]+" CONVERTS TO "+df.format(conversion)+" MARKS.");
break;
case "YEN":
conversion = Double.parseDouble(Temp[i])*260;
System.out.println("$"+Temp[10]+" CONVERTS TO "+df.format(conversion)+" YEN.");
break;
default:
;
break;
}
System.out.println("Invalid input, Please try again");
}
最佳答案
您可以省略第二个循环并将 switch 语句包含在第一个循环内:
for(i=0;i<=3;i++)
{
temp = sc.nextLine();
Temp = temp.split(" ");
switch (Temp[1]) {
case "PHP":
conversion = Double.parseDouble(Temp[0])*51.23;
System.out.println("$"+Temp[0]+" CONVERTS TO "+df.format(conversion)+" PHP.");
break;
// Other cases
// ...
// ...
default:
i--;
System.out.println("Invalid input, Please try again");
}
}
如果您想在转换之前首先读取所有 4
输入(每行 1 个输入),那么您需要将它们存储在 String< 的
然后将它们传递给循环。ArrayList
中
ArrayList<String> lines = new ArrayList<>();
for(int i=0;i<=3;i++)
lines.add(sc.nextLine());
for(int i=0;i<=3;i++)
{
String Temp[] = lines.get(i).split(" ");
switch (Temp[1]) {
case "PHP":
conversion = Double.parseDouble(Temp[0])*51.23;
System.out.println(Temp[1]);
System.out.println("$"+Temp[0]+" CONVERTS TO "+df.format(conversion)+" PHP.");
break;
// Other cases
// ...
// ...
default:
continue;
//i--;
//System.out.println("Invalid input, Please try again");
}
关于java - 货币转换器-为什么我的 for 循环在 switch 中不起作用?当我运行我的代码时,只有第一个 for 循环起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57948668/