根据先前的输入显示特定消息的问题

时间:2016-08-28 19:40:08

标签: java

我正在为即将到来的计算机科学课开展课本练习,而且我遇到了一个问题,具体来说,该计划的目标是输入三个项目(如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!

0 个答案:

没有答案