创建在用户输入" 0"时停止的数组;

时间:2015-10-28 20:07:45

标签: java arrays while-loop java.util.scanner

==============

我在给出的作业中连接点时遇到了一些问题。这是Java。

目标/要求

  • 使用WHILE循环存储用户输入的整数。

  • 如果输入的值小于0,则循环应该结束(如果他们输入负值,我不知道怎么读它)

    < / LI>
  • 程序应该输出这些东西(我还没有这么做,但如果有人可以解释这些,那就太棒了)

    • 偶数输入数
    • 奇数输入数
    • 累计总数。例如,如果输入为1 7 2 9,则程序应打印1 8 10 19

这是我到目前为止所做的事情,它没有工作,因为它还没有完成,而且我很蠢。

import java.util.Scanner;

public class IntegerArrayTester
{

    public static void main(String[] args)
    {
        Scanner console = new Scanner(System.in);

        int total = 0;
        int[] array = new int[total];

        // Asks for user input
        System.out.println("Please enter integers. To stop, type a negative number.");
        int input = console.nextInt();
        int num = input;

        while(num >= 0) {
            for(int i = 0; i < total; i++)
                array[i] = console.nextInt();
        }

        // displays the array
        for(int k = 0; k < array.length; k++) {
            System.out.println(array[k] + " ");
        }

        console.close();
    }
}

4 个答案:

答案 0 :(得分:2)

你永远不会更新num。将其添加到获取用户输入的循环中。

    while(num >= 0) {
        for(int i = 0; i < total; i++) {
            array[i] = num;
            num = console.nextInt();
        }
    }

如果要填充数组,还需要将总数设置为大于0的值。

答案 1 :(得分:2)

数组在Java中不可调整大小,您需要使用List。

<div ng-app="MyApp">
<div class="container" ng-controller="sentCtrl">
    <div class="row">
        <div><strong>Only show:</strong>&nbsp;
            <div class="btn-group btn-group-xs">
                <button class="btn btn-primary" ng-click="setMyFilter()">Images</button>
            </div>
        </div>
    </div>
    <div class="row content-sc">
        <div class="item-sc" data-ng-repeat="d in things | filter: {largeImage.hasImage: myFilter}">
             <h4>{{d.NAME}}<br/><small>ID: {{d.ID}}</small></h4>

        </div>
    </div>
</div>

答案 2 :(得分:0)

首先,不要使用数组,因为您不知道用户将提交的数字量。

这里使用固定大小0

初始化数组
int total = 0;
int[] array = new int[total];

所以我猜你的程序在提供第一个号码时崩溃了吗?

array[i] = console.nextInt();

使用像ArrayList这样的动态增长的集合......

此外,num应该更新......

答案 3 :(得分:0)

试试这个

    ArrayList<Integer> ins = new ArrayList<Integer>();
    Scanner scan = new Scanner(System.in);

    System.out.println("Please enter numbers. Enter negative value to stop.");

    int evens = 0, odds = 0;

    while (scan.hasNextLine()) {
        int num = Integer.parseInt(scan.next());

        if(num<0) break;

        ins.add(num);

        if (num % 2 == 0)
            evens++;

        else
            odds++;
    }

    System.out.println("Even numbers = "+evens+"\nOdd numbers = "+odds);
    int[] totals = new int[ins.size()];
    totals[0] = ins.get(0);
    System.out.print("Cumulative totals \n" + totals[0] + " ");
    for (int i = 1; i < ins.size(); i++) {
        totals[i] = totals[i - 1] + ins.get(i);
        System.out.print(totals[i] + " ");
    }