我必须打印数组,但是对于每个循环都不起作用

问题描述 投票:0回答:4
import java.util.Scanner;

public class TeacherCoins {

    public static void main(String[] args){

    int k;

    System.out.print("Enter total number of coins :");
    Scanner sc = new Scanner(System.in);
    k =sc.nextInt();

    int [] arr= new int[k-1];
    System.out.print("Enter array :");

    for(int i=0;i<=(k-1);i++) 
    {

        Scanner sc1 = new Scanner(System.in);
        arr[i] =sc1.nextInt();

    }

    for(int element :arr)
    {
    System.out.println("Print array");
    System.out.println(element);

    }
}

我正在使用Scanner类提供输出。但是不打印数组。

java
4个回答
0
投票

您无需在循环内再次声明扫描器。确保代码安全的另一件事是在循环if i 上具有此条件。最后,我将“打印数组”消息移到了最后一个消息之外。

public class TeacherCoins {

    public static void main(String[] args){

        int k;

        System.out.print("Enter total number of coins :");
        Scanner sc = new Scanner(System.in);
        k =sc.nextInt();

        int [] arr = new int[k];
        System.out.print("Enter array :");

        for(int i=0; i<arr.length; i++) {
            arr[i] =sc1.nextInt();
        }

        System.out.println("Print array");
        for(int element :arr){
            System.out.println(element);
        }
    }
}

0
投票

此代码有两个问题,1.您无需为每个用户输入创建一个新的Scanner对象。2.您声明的数组大小为k-1,然后要求用户输入k次。

    public static void main(String[] args) {
        int k;
        System.out.print("Enter total number of coins :");
        Scanner sc = new Scanner(System.in);
        k = sc.nextInt();

        int[] arr = new int[k];  // To store k elements, you need k sized array
        System.out.print("Enter array :");
        for (int i = 0; i <= (k - 1); i++) {
            // Scanner sc1 = new Scanner(System.in); / / Not required here
            arr[i] = sc.nextInt();

        }
        System.out.println("Print array");
        for (int element : arr) {
            System.out.println(element);
        }
    }

0
投票

您的代码中只有一个问题,您将数组的大小声明为k-1,而不是对k个元素声明它。您只需在每个行中输入每个输入。有关更多信息,请参见:Scanner class。并且您的每个循环都是正确的,并且可以正常工作。

import java.util.Scanner;
public class TeacherCoins {
    public static void main(String[] args){
    int k;
    System.out.print("Enter total number of coins :");
    Scanner sc = new Scanner(System.in);
    k =sc.nextInt();
    int [] arr= new int[k];//it was giving java.lang.ArrayIndexOutOfBoundsException
    System.out.print("Enter array :");
    for(int i=0;i<=(k-1);i++)
    {
        Scanner sc1 = new Scanner(System.in);//not required
        arr[i] =sc1.nextInt();//use arr[i] =sc.nextInt();
    }

    for(int element :arr)
    {
        System.out.println("Print array");
        System.out.println(element);
    }
}

}上面的代码将起作用。但是您不需要新的扫描仪对象进行输入,仅创建单个对象即可。


0
投票
import java.util.Scanner;

public class TeacherCoins {

    public static void main(String[] args) {

        int k;

        System.out.print("Enter total number of coins :");
        Scanner sc = new Scanner(System.in);
        k = sc.nextInt();

        int[] arr = new int[k];

        System.out.print("Enter array :");

        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();

        }
        sc.close();

        System.out.println("Print array");

        for (int element : arr) {

            System.out.println(element);
        }

        for (int i = 0; i < arr.length; i++) {
            int count = 0;
            for (int j = 0; i < arr.length; j++) {
                arr[i] = arr[j];
                count++;

            }
            System.out.println(arr[i] + " " + count);

        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.