我正在为即将到来的计算机科学课开展课本练习,而且我遇到了一个问题,具体来说,该计划的目标是输入三个项目(如String),以及三个价格输入,然后输出。此外,如果其中一个项目的名称是" Peas" (不区分大小写),也显示平均价格,如果没有,则显示"没有平均输出"。
我遇到的问题是程序从不显示"没有平均输出"根据需要,即使没有任何值是"豌豆","豌豆"等等。
除了下面的代码,我还尝试了以下内容..
在接收数据的原始for循环之外的for循环中使用单独的if语句
// Import JOptionPane to display message boxes of the data inputed
import javax.swing.JOptionPane;
public class PeaPrice {
public static void main(String[] args) {
// Declare arrays for the 3 String names, the 3 double prices, and the average price
String[]names=new String[3];
double[]prices=new double[3];
double avg;
// Initialize the boolean value for if "peas" is inputed, and the result to be displayed
boolean peas=false;
String result="Results... \n";
// Loop 3 times to receive 3 string values
for(int i=0; i<3; i++){
names[i] = JOptionPane.showInputDialog("Please input the name of item number " + (i+1) + ":");
// If the string entered is peas, set the boolean to true
if(names[i].toLowerCase()=="peas"){
peas=true;
}
}
// Loop 3 times to receive 3 double values
for(int i=0; i<3; i++){
prices[i] = Double.parseDouble((JOptionPane.showInputDialog("Please input the price of item number " + (i+1) + ":")));
}
// Loop 3 times to go through each array index for price and name to add them to the result string to be displayed
for(int i=0; i<3; i++){
result +="Item name: " + names[i] + " Item price: $" + prices[i] + "\n";
}
// Display the result string
JOptionPane.showMessageDialog(null, result);
//Calculate the average price
avg = (prices[0]+prices[1]+prices[2])/3;
// Display the average price accordingly based on the boolean value
if(peas=true){
JOptionPane.showMessageDialog(null, "Average price: $" + avg);
}
else if (peas=false){
JOptionPane.showMessageDialog(null, "no average output");
}
System.exit(0);
} }
感谢您的帮助!
修改 遗憾的是我提到的另一个问题所提供的解决方案,我尝试将if语句修改为以下内容并仍然存在同样的问题
if(names[i].toLowerCase().equals("peas")){
peas=true;
}
我也试过删除toLowerCase但仍有同样的问题
if(names[i].equals("peas")){
peas=true;
}
编辑2 解决了 - 谢谢@jegesh!