3

我必须:

  • 创建这个java数组;
  • 使用 while 循环遍历它;
  • 如果总和为 100,则终止程序;
  • 并打印我放入数组的总和和数字。

我不知道该怎么做,这是我的代码到目前为止,任何帮助将不胜感激。

public class december2012 {
    public static void main(String[] args) {  

        int sum=0;            

        Scanner input = new Scanner(System.in);            

        int i=1;

        int [] array = new int[i];

        while( i > array.length || sum <= 100) {

          System.out.println("Write in the " + i + " number") ; 
          array[i]=input.nextInt();
          sum=+array[i];
           System.out.println("sum is " + sum); 

        }            

        }
    }
4

5 回答 5

5
int i = 0;                            // array starts from 0
int [] array = new int[100];          // create larger array
while(i < array.length && sum <= 100) // i should be less then length
                                      // && instead of ||
{
   System.out.println("Write in the " + i + " number") ; 
   array[i] = input.nextInt();
   sum += array[i];                   // += instead of =+
   System.out.println("sum is " + sum);
   i++;                               // increment i 
}  

Ideone 演示

于 2013-10-20T17:13:17.420 回答
0
public class December2012 {
    public static void main(String[] args) {
        int[] array = new int[100];
        int sum = 0;
        int i = 0;
        Scanner input = new Scanner(System.in);
        while (sum <= 100 && i < array.length) {
            System.out.print("Write in the " + (i + 1) + "th number: ");
            array[i] = input.nextInt();
            sum += array[i];
            i++;
        }
        System.out.print("You added: ");
        for (Integer i : array) System.out.print(i + " ");
        System.out.println("\nsum is " + sum);
    }
}
于 2013-10-20T17:14:06.707 回答
0

首先,设置时

int i=1;
int [] array = new int[i];

您正在创建一个具有 1 个插槽的数组,其索引为0. 当您执行此操作时,需要注意这一点:

array[i]=input.nextInt();

因为,正如您定义的那样,它i不是 1,这意味着您将第二个索引 index 分配1input.nextInt().

您的 while 循环也已关闭,因为 i 永远不应大于数组的长度。您应该改用 for 循环,在这种情况下:

for(int i = 0; i < array.length; i++) {
    array[i] = input.nextInt();
    sum += array[i]

    if (sum > 100) {
        return;
    }
}
于 2013-10-20T17:12:34.557 回答
0

您需要增加i变量;目前它的值 always 0,所以你只设置数组中的第一个元素。

于 2013-10-20T17:12:41.923 回答
-1

像这样,简单的做法如何:

int sum = 0;
while(true) {
   //Do calculations
   if(sum >= 100) {
      break;
   }
}

System.out.println("Sum is : " + sum);
于 2013-10-20T17:12:05.320 回答