【问题标题】:JOptionPane LoopingJOptionPane 循环
【发布时间】:2017-10-09 02:39:09
【问题描述】:

我有一个问题。我的讲师希望我做一个循环,输入 JOptionPane 和输出控制台。如何为 JOptionPane 使用循环并通过控制台发送输出。

这是我的代码:

int even = 0;
int odd = 0;
int e_e = 0;
int o_o = 0;

String a1 = JOptionPane.showInputDialog(null, "Type in 10 integer");

for (int counter = 0; counter < 10; counter++){
    int a = Integer.parseInt(a1);

    if (a % 2 == 0) {
        even++;
        e_e += a;
    } else {
        odd++;
        o_o += a;
    }
}

System.out.println("\n\nNumber of even numbers : " + even);
System.out.println("Number of odd numbers : " + odd);
System.out.println("Total of even numbers : " + e_e);
System.out.println("Total of odd numbers : " + o_o);

【问题讨论】:

  • 好吧,只需将您的调用放在循环内的JOptionPane...您的程序应该做什么?然后,我们可以就如何更改您的具体程序为您提供明确的建议。
  • 如果用户回答了您的问题,请同时接受他的回答 (Accepting Answers: How does it work?)。如果不是,请说明什么仍未得到答复,这是 StackOverflow 的一个非常重要的部分,非常感谢。

标签: java swing loops if-statement


【解决方案1】:

我会尝试使用带有 int[]DO-WHILE 循环,例如:

int size = 10;
int count = 0;

int[] yourNumbers = new int[size];

do {
    yourNumbers[count] = Integer.parseInt(JOptionPane.showInputDialog(null,
        "Your message here."));

    count++;
} while (count < 10);

通过这种方式,您可以循环并获取所有数字。然后您可以使用 FOR-LOOP 循环并打印您需要的内容

System.out.println("Even Numbers are: ");

for(int i = 0; i < yourNumbers.length; i++) {
    if (yourNumbers[i] % 2 == 0) {
        System.out.println(yourNumbers[i]);
    } 
}

System.out.println("Odd Numbers are: ");

for(int i = 0; i < yourNumbers.length; i++) {
    if (yourNumbers[i] % 2 != 0) {
        System.out.println(yourNumbers[i]);
    } 
}

【讨论】:

  • 我没有看到首先收集所有值然后再次迭代它们以处理它们的优势。但是,是的,也有效。当然,很高兴知道如何将值存储在数组中。
【解决方案2】:

您当前代码的问题在于您只要求用户一次输入一个数字,但您实际上似乎想要 10 个值。所以你解析十次相同的值。

解决方法很简单,把对话框放在循环里面(只用cmets换行):

int even = 0;
int odd = 0;
int e_e = 0;
int o_o = 0;

// No return type, just a message
JOptionPane.showMessageDialog(null, "Type in 10 integer");

for (int counter = 0; counter < 10; counter++) {
    // Dialog inside the loop, asking to
    // input a number in every iteration
    String value = JOptionPane.showInputDialog(null, "Type in "
        + (counter + 1) + ". value");
    int a = Integer.parseInt(value);

    if (a % 2 == 0) {
        even++;
        e_e += a;
    } else {
        odd++;
        o_o += a;
    }
}

System.out.println("\n\nNumber of even numbers : " + even);
System.out.println("Number of odd numbers : " + odd);
System.out.println("Total of even numbers : " + e_e);
System.out.println("Total of odd numbers : " + o_o);

【讨论】:

  • 谢谢。真的很感激。
猜你喜欢
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多