Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用while循环的Java数组_Java_Arrays - Fatal编程技术网

使用while循环的Java数组

使用while循环的Java数组,java,arrays,Java,Arrays,我必须: 创建这个java数组 使用while循环遍历它 如果总和达到100,则终止程序 然后打印我放入数组的总和和数字 我不知道如何做到这一点,这是我的代码到目前为止,任何帮助将不胜感激 public class december2012 { public static void main(String[] args) { int sum=0; Scanner input = new Scanner(System.in

我必须:

  • 创建这个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); 

        }            

        }
    }
公共课2012年12月{
公共静态void main(字符串[]args){
整数和=0;
扫描仪输入=新扫描仪(System.in);
int i=1;
int[]数组=新的int[i];

而(i>array.length | | sum这样做怎么样,简单的方法是:

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

System.out.println("Sum is : " + sum);

首先,当设置

int i=1;
int [] array = new int[i];
您正在创建一个带有1个插槽的数组,其索引为
0
。在执行此操作时,请务必注意这一点:

array[i]=input.nextInt();
因为,正如您所定义的,
i
不是1,这意味着您将第二个索引index
1
分配给
input.nextInt()
的返回值

您的while循环也处于关闭状态,因为我不应该大于数组的长度。您应该使用for循环,如下所示:

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

    if (sum > 100) {
        return;
    }
}
for(int i=0;i100){
返回;
}
}

您需要递增
i
变量;当前其值始终为
0
,因此您只需设置数组中的第一个元素。

int i=0;//数组从0开始
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 
}  
int[]数组=新的int[100];//创建更大的数组 而(i公共类2012年12月{ 公共静态void main(字符串[]args){ int[]数组=新的int[100]; 整数和=0; int i=0; 扫描仪输入=新扫描仪(System.in);
而(sum)通常,Java类以大写字母开头。您的意思是sum=sum+array[i],请注意,i始终是1,因此您会得到一个ArrayIndexOutOf BoundException。
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);
    }
}