Java循环由于某种原因运行了4次

问题描述 投票:0回答:2

所以我有此作业,需要循环用户输入6次。循环完成后,再次循环3次。我没有在其之前添加for lop,所以我不知道该如何处理。

这是该方法的代码:

public static int[] getPlayerNumbers(int[] playNums) {
    Scanner input = new Scanner(System.in);

    for (int i = 0; i < playNums.length; i++) {
        System.out.println("Please enter numbers from 1-9: " + i);
        playNums[i] = input.nextInt();

        while (playNums[i] < 1 || playNums[i] > 9) {
            System.out.println("Invlaid input. Please only enter 1-9. ");
            playNums[i] = input.nextInt();
        }
    }

    return playNums;
}

我放置了i以查看索引,然后它从05,然后返回到0。我没办法了,请帮忙。

java arrays for-loop
2个回答
0
投票

似乎您的playNums超过6个。尝试

public static int[] getPlayerNumbers(int[] playNums) {
Scanner input = new Scanner(System.in);

for (int i = 0; i < 6; i++) {
    System.out.println("Please enter numbers from 1-9: " + i);
    playNums[i] = input.nextInt();

    while (playNums[i] < 1 || playNums[i] > 9) {
        System.out.println("Invlaid input. Please only enter 1-9. ");
        playNums[i] = input.nextInt();
    }
}

return playNums;}

0
投票

我已经测试了您的代码,它似乎对我有用。 playsNums肯定包含6个以上的值。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] playNums ={1, 2, 3, 4, 5, 6};
        getPlayerNumbers(playNums);
        for (int playNum: playNums) {
            System.out.println(playNum);
        }
    }

    public static int[] getPlayerNumbers(int[] playNums)
    {
        Scanner input = new Scanner(System.in);

        for (int i = 0; i < playNums.length; i++) {
            System.out.println("Please enter numbers from 1-9: " + i);
            playNums[i] = input.nextInt();
            while (playNums[i] < 1 || playNums[i] > 9) {
                System.out.println("Invalid input. Please only enter 1-9. ");
                playNums[i] = input.nextInt();
            }
        }
        return playNums;
    }
}

0
投票

尝试一下

public static int[] getPlayerNumbers(int[] playNums)
{
    Scanner input = new Scanner(System.in);

    for (int i = 0; i < 6; i++)
    {
        playNums[i] = input.nextInt();
        if(playNums[i] < 1 || playNums[i] > 9){
           System.out.println("Invlaid input. Please only enter 1-9. ");

        } else{

        System.out.println("Please enter numbers from 1-9: " + i);
            playNums[i] = input.nextInt();
        }

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