Java数组打印0

Java数组打印0,java,arrays,Java,Arrays,在程序中,如果我输入0,它将退出,问题是当我尝试打印阵列之后,如果我选择退出,将有很多0。我如何防止它被打印出来 package lu.ics.Sohail.labbar; import java.util.Arrays; import java.util.Scanner; public class November2012 { public static void main(String[] args) { int tal; int summa=0;

在程序中,如果我输入0,它将退出,问题是当我尝试打印阵列之后,如果我选择退出,将有很多0。我如何防止它被打印出来

package lu.ics.Sohail.labbar;

import java.util.Arrays;
import java.util.Scanner;

public class November2012 {
    public static void main(String[] args) {
        int tal;
        int summa=0;
        Scanner input = new Scanner(System.in);
        int [] array = new int [100];
        int min = Integer.MAX_VALUE;
        int max = 0;

        for (int i=0 ; i<array.length; i++ ){
            System.out.print("Ange tal 0 avsluta");
            array[i] = input.nextInt();
            summa =summa+array[i];
            if (array[i]==0) {
                break;
            }
            while(array[i]<min)
            { 
                min=array[i];
            }
            while(array[i]>max)
            { 
                max=array[i];
            }
        }

        System.out.print("Talen är " + Arrays.toString(array));    
        System.out.println();
        System.out.print("Summan är " + summa);
        System.out.println();
        System.out.print("Max är " + max);
        System.out.println();
        System.out.print("Min är " + min);
    }
}
包lu.ics.Sohail.labbar;
导入java.util.array;
导入java.util.Scanner;
公共课2012年11月{
公共静态void main(字符串[]args){
国际贸易;
int summa=0;
扫描仪输入=新扫描仪(System.in);
int[]数组=新的int[100];
int min=整数最大值;
int max=0;

对于(int i=0;i,此调用中的每个项都已将数组的其余部分初始化为0:

int[]数组=新的int[100];


然后,当检测到第一个
0
时,它会中断
for
循环并打印所有内容。

您需要使用自己的大小创建数组。创建数组时,会分配100个静态内存,并将所有值分配给0

 System.out.print("Enter the array size");
 int arraySize = input.nextInt();
 int [] array = new int [arraySize];

否则请使用
ArrayList
存储数字

我想我现在明白了

int[]array=new int[100];
将创建一个包含100个int的数组,每个元素的初始化值为0(这是
int
的默认值)。因此,当您打印数组时,将打印100个数字,而不管它们是否为0

您在这里有几个选项:

  • 使用
    列表
    ,这样列表只包含在第一个0之前输入的数字
  • 在循环中打印,并在数组的前0或末尾断开
  • 或者,您可能希望对输入的数字进行计数,例如用于计算平均值等。这可用于迭代数组中的前n个元素

话虽如此,我还是建议使用列表,因为这样会更灵活。

使用ingeter数组。但是当您打印数组时,这将打印空值。请添加一个条件,以便在打印时不这样做

package com.prasad.samples.views;

import java.util.Arrays;
import java.util.Scanner;

public class November2012 {
    public static void main(String[] args) {
        int tal;
        int summa=0;
        Scanner input = new Scanner(System.in);
        Integer [] array = new Integer [100];
        System.out.println(array[0]);
        int min = Integer.MAX_VALUE;
        int max = 0;

        for (int i=0 ; i<array.length; i++ ){
            System.out.print("Ange tal 0 avsluta");
            array[i] = input.nextInt();
            summa =summa+array[i];
            if (array[i]==0) {
                break;
            }
            while(array[i]<min)
            { 
                min=array[i];
            }
            while(array[i]>max)
            { 
                max=array[i];
            }
        }

        System.out.print("ar " + Arrays.toString(array));    
        System.out.println();
        System.out.print("summan ar " + summa);
        System.out.println();
        System.out.print("Max ar " + max);
        System.out.println();
        System.out.print("Min ar " + min);
    }
}
package com.prasad.samples.views;
导入java.util.array;
导入java.util.Scanner;
公共课2012年11月{
公共静态void main(字符串[]args){
国际贸易;
int summa=0;
扫描仪输入=新扫描仪(System.in);
整数[]数组=新整数[100];
System.out.println(数组[0]);
int min=整数最大值;
int max=0;

对于(int i=0;i使用
List
而不是数组。我甚至不明白您想要实现什么。您不想从数组中打印0???您的问题不清楚,我不清楚。因为数组由100个整数组成,如果我打印0,for循环将退出。如果我打印数组中的任何内容,它可能是1、2、3、4和a b取消对0的清除这些是我想要消除的方法,明白了。使用列表我可以阻止打印剩余的0吗?它必须是100,我可以通过输入0终止,所有其他0都将被打印。明白了。按照建议使用列表,而不是数组。