java - 编写一个程序,询问产品代码,产品数量并汇总所有价格

Closed. This question needs details or clarity。它当前不接受答案。












想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。

7年前关闭。



Improve this question




我一直很难做到这一点,并且一直在寻找有关如何将其编码的想法,但我仍然是一个初学者。这是我的源代码。也许您会通过阅读来了解我的想法。它运行不正常,应该达到。
import javax.swing.JOptionPane;
public class sto
{
    public static void main(String args[])
    {
        char s;
        do
        {
            int pcod=0, qua;
            int[] cod={101, 102, 103, 104, 105, 106, 107, 108, 109, 110};
            double[] pri={1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 0.1};
            double [] sal=new double[10];
            String[] pro={"q", "w", "e", "r", "t", "y", "u", "i", "o", "p"};
            do
            {
                if(pcod>=101||pcod<=110)
                {
                    pcod=Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Product Code:"));
                    for(int i=0;i<10;i++)
                    {
                        if(pcod==cod[i])
                        {
                            qua=Integer.parseInt(JOptionPane.showInputDialog(null,"Enter quantity:"));
                            sal[i]=pri[i]*qua;
                            JOptionPane.showMessageDialog(null,"You bought:\n"+pro[i]+"......"+pri[i]+" Pesos x"+qua);
                        }
                    }
                }
                else
                if(pcod<=101||pcod>=110)
                    JOptionPane.showMessageDialog(null,"INVALID PRODUCT CODE");
                    //some codes here to make you return to enter a product code again.
            }while(pcod!=00);
            for(int d=0;d<10;d++)
                sal[d]=qua;
            JOptionPane.showMessageDialog(null,"Total sales.........."+sal[d]+" Pesos");
            s=JOptionPane.showInputDialog(null,"Shop Again?(Y/N)").charAt(0);
        }
        while(s=='y');
    }
}

最佳答案

// .. the problem is in the next few lines
for(int d=0;d<10;d++)
    sal[d]=qua;
JOptionPane.showMessageDialog(null,"Total sales.........."+sal[d]+" Pesos");

缺少括号,for循环仅包含下一个缩进的代码行。属性d是在for循环语句内定义的,并且超出了循环范围而失去了焦点(无法在选项 Pane 中引用/使用)。

要解决此问题,请将{}放在两行(一组括号中要包括两行)周围。

这导致下一个问题。
int pcod=0, qua;

此时,pcod0,但是qua没有值。编译器将警告might not have been initialized。快速解决方案是为它提供一个默认值,但这可能不适合应用程序的逻辑。特别是如果在将输入解析为int值时抛出异常。

https://stackoverflow.com/questions/19216812/

上一篇:java - 在PHP中获取Java编译错误

下一篇:visual-c++ - Visual Studio 2012-发行模式下的OpenCV链接错误

相关文章:

java - 如何从Java中的List中获取特定的列列表

java - 生成比数组长度更长的所有可能组合

java - 如何将此 JScrollPane 类添加到我的 swing 构建器中?

java - 我最近更改为 JTextPane,但我的加载功能已损坏

java - 从 NewProxyConnection 中解开 NewProxyConnection 和 GetConnection

java - 使用 Java + 正则表达式从文本文档中提取 URL

javascript - 有人可以解释方法映射的这种特殊用途吗?

php - 使用foreach循环上传多张图片并插入数据库

java - 如何在 JFrame 中设置图像的位置

java - Vertx 运行多个事件循环

相关文章:

sql - Oracle数据库触发器编译问题

c# - C#在数学表达式中使用未分配的变量

java - 在PHP中获取Java编译错误

c++ - 无法使派生的WebDuino类正常工作-使用 'Web_HelloWorld.ino'编

c# - 编译内容项目时出错

java - 错误: The local variable jars may not have be

c++ - 没有匹配的函数用于调用c++

java - 找不到符号(扩展另一个类)

c++ - 将文本文件读入结构并显示数组

compiler-errors - 在我的Triangle类中找不到符号错误