要求用户输入以创建两个数组

时间:2015-10-27 21:14:44

标签: arrays for-loop user-input

import java.util.Scanner;

public class Ch7AssignArrays1 {

    public static void main(String[] args) {
        int[] population = new int[5];// array to store populations for counties
        String[] county = new String[5]; //array to store county names

        Scanner input = new Scanner(System.in);
        //ask user for county name and store in array
        System.out.println("Please enter the name of a county: ");
        county[0] = input.toString();
        //ask user for population of county entered above, store in array
        System.out.println("Enter the population of the county: " + input.nextLine());
        population[0] = input.nextInt();


        for(int index = 1; index < county.length && index < population.length; index++){
            System.out.println("Please enter the name of a county: ");
            county[index] = input.toString();
            //ask user for population of county entered above, store in array
            System.out.println("Enter the population of the county: ");
            System.out.println(input.hasNext());
            population[index] = input.nextInt();
        }
        for(int index = 0; index < county.length && index < population.length;index++){
        System.out.println(county[index] + "\t" + population[index]);
        }
    }

}

我已编写此代码,并且在程序到达for循环时遇到问题。我希望能够请求用户输入,存储到一个数组(县),然后再次询问输入并存储到另一个数组(填充),然后在最后打印两个数组。这适用于for循环之外的input.nextLine,然后询问每个问题然后存储。但是当在循环中时,立即询问两个问题并且仅针对第二个阵列(群体)进行输入。我在for循环之外找到的解决方案在循环内部不起作用。我可以在for循环中放入什么来解决这个问题?

2 个答案:

答案 0 :(得分:1)

我的问题是我的代码行县[0] = input.toString();应该是.next()来解决多用户输入问题。

答案 1 :(得分:0)

感谢Mallory L,这是一个很好的问题。

要完全回答这个问题需要更长的时间。

与此同时,在&#34;中开始循环使用index = 1而不是index = 0的原因(int index = 1; index&lt; county.length&amp;&amp; index&lt; population.length;索引++){&#34;

此外,示例输入和示例输出是什么? 例如,用户输入&#34;洛杉矶&#34;对于该县,结果将是12,000,000?

如果您希望用户继续添加更多的县和群体,直到用户想要停止,那么请考虑使用while循环而不是for循环。