嵌套while循环迭代

时间:2018-07-04 10:01:09

标签: java arrays

我在嵌套while循环中遇到问题,导致以下问题:

  

线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:2       在Chatbot.main(Chatbot.java:25)

我不太确定是什么引起了ArrayIndexOutOfBoundsException。
这样做的部分要求是,我不允许使用while循环以外的任何其他形式的循环。也不能使用任何continue,break等。

任何见识将受到高度赞赏。

尼克

下面的代码:

import javax.swing.JOptionPane;

public class Chatbot {

public static void main(String[] args) {

    String[] topics;
    int numTopics = Integer.parseInt(JOptionPane.showInputDialog("How many topics would you like to talk about?"));

    while (numTopics < 1) {
        numTopics = Integer.parseInt(JOptionPane.showInputDialog("Error! Please enter a positive number of topics!"));

    }
    int i = 0;
    topics = new String[numTopics];
    while (i < topics.length) {
        topics[i] = JOptionPane.showInputDialog("Please enter topic " + i);
        while (topics[i].contains("?")) {
            topics[i] = JOptionPane.showInputDialog("I'll ask the questions here, Please enter topic " + i);

        }
        i = i + 1;

    }
    String dialog1 = JOptionPane.showInputDialog("Tell me more about " + topics[numTopics]);

 }

}

1 个答案:

答案 0 :(得分:1)

将您的最后一行代码从topics[numTopics]更改为topics[numTopics-1],因为索引从数组中的0开始

String dialog1 = JOptionPane.showInputDialog("Tell me more about " + topics[numTopics-1]);