0

我明天有这个任务,我是初学者,请帮忙。必须是 JOptionpane :OI 想知道我是否可以在 showmessagedialog 中使用 if else 语句。错误说需要不兼容的类型: int ( for holder=holder + "\n" + aw[x]; 这是我到目前为止所做的(对不起,我是初学者,请理解):

public static void main(String[] args) {
 String s;
 int size;
 int size2;
 int holder;
 s = JOptionPane.showInputDialog("Enter the size of the array");
 size = Integer.parseInt(s);
 String aw[]= new String[size];

 for (int x=0; x<=aw.length-1; x++){
     aw[x]=JOptionPane.showInputDialog("Enter value for array[" + x + "]");
     size2 = Integer.parseInt(aw[x]);
 }
    for (int x=0; x<=aw.length-1;x++)
    {
        holder=holder + "\n" + aw[x];




    }
JOptionPane.showMessageDialog(null, if (holder<0)  { holder + " is negative" }  else holder " is positive");

}

}'

4

4 回答 4

0

最好的方法是:

final String msg = holder == 0 ? "is zero" : (holder > 0 ? "is positive" : "is negative");
JOptionPane.showMessageDialog(null,msg);
于 2013-11-14T12:29:33.743 回答
0

你不能做的事情:

1 您声明的变量holder是 int 类型。不能用来做`+`操作。

2 不需要两个 for 循环。

3您忘记检查输入的数字是否为零,您只是有正负逻辑。

4 尝试+对字符串使用操作时。请使用append的方法StringBuilder

这是基于上述3项制作的代码。

 public static void main(String[] args) {
    String s;
    int size;
    int size2;
    int holder = 0;

    s = JOptionPane.showInputDialog("Enter the size of the array");
    size = Integer.parseInt(s);
    String aw[] = new String[size];

    StringBuilder sb = new StringBuilder();
    for (int x = 0; x <= aw.length - 1; x++) {
        aw[x] = JOptionPane.showInputDialog("Enter value for array[" + x
                + "]");
        size2 = Integer.parseInt(aw[x]);

        if(size2 ==0)
        {
            sb.append(aw[x]).append(" is zero").append('\n');
        }else if(size2 >0)
        {
            sb.append(aw[x]).append(" is positive").append('\n');
        }else
        {
            sb.append(aw[x]).append(" is negative").append('\n');
        }
    }
    JOptionPane.showMessageDialog(null, sb.toString());

  }

在此处输入图像描述

于 2013-11-14T11:51:27.893 回答
0

holder 被声明为 int,但在

holder=holder + "\n" + aw[x];

您尝试为其分配一个字符串。

于 2013-11-14T11:38:25.007 回答
0

使用字符串存储您的消息

String msg;
if (holder<0)
{  
    msg = holder + " is negative"; 
}  
else
{
     msg = holder " is positive";   
}
JOptionPane.showMessageDialog(null,msg);

showMessageDialog 函数期望第二个参数是字符串

于 2013-11-14T11:38:32.603 回答