Java数组打印% 0

yqkkidmi  于 2023-04-04  发布在  Java
关注(0)|答案(5)|浏览(170)

在程序中,如果我输入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);
    }
}
e4yzc0pl

e4yzc0pl1#

我想我现在明白了。
int [] array = new int [100];将创建一个100个int的数组,每个元素的初始值为0(这是int的默认值)。因此,当您打印数组时,将打印100个数字,无论它们是否为0。
这里有几个选项:

  • 使用List<Integer>,这样列表只包含在第一个0之前输入的数字。
  • 在循环中打印,并在数组的第一个0或末尾处中断。
  • 您可能希望记录已输入的数字数量,例如计算平均值等。这可以用于迭代数组中的前n个元素。

话虽如此,我建议使用列表,因为这将更加灵活。

carvr3hs

carvr3hs2#

对于此调用中的每个项,数组的其余部分已初始化为0:
int [] array = new int [100];
然后,当检测到第一个0时,它会中断for循环并打印所有内容。

doinxwow

doinxwow3#

你需要创建一个你自己大小的数组。在创建你的数组时,分配了100个静态内存,所有的值都分配给0。

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

否则使用ArrayList<Integer>存储数字

fv2wmkja

fv2wmkja4#

使用ingeter数组。但是当你打印数组的时候会打印null。添加一个条件,在打印的时候不这样做。

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);
    }
}
xdnvmnnf

xdnvmnnf5#

如果您安装了Java8或更高版本
String repeat_Zero = '0'.repeat(18);System.out.println();
注意:这里它将打印18乘以零输出是:00000000000000000

相关问题