java - 为什么for循环外的变量不起作用?

标签 java loops for-loop

我有一个 for 循环,它将结果存储在 int 数组中,并且我需要能够从这些结果中搜索例如。数组中有多少个 1,所以我在循环外声明了一个 int 变量,但它一直说我的数组尚未初始化。大家能帮帮我吗,谢谢。

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

class TestDie {

public static void main (String [] args)
{
    Die firstDie = new Die();
    int[] playerOneResults;

    firstDie.roll();
    System.out.println(firstDie.getFaceValue());

    Scanner userInput = new Scanner(System.in);
    System.out.println("PLease enter the name of player one");
    String playerOneName = userInput.next();

    System.out.println("Please enter the name of player two");
    String playerTwoName = userInput.next();

    System.out.println("Enter the number of dice to be thrown");
    int numDice = userInput.nextInt();

    System.out.println("First player's name: " + playerOneName);
    System.out.println("Second player's name: " + playerTwoName);
    System.out.println("Number of dice will be thrown: " + numDice);

    for(int counter = 0; counter != numDice; counter++)
    {
        playerOneResults = new int[numDice];
        firstDie.roll();
        playerOneResults[counter] = firstDie.getFaceValue();
        System.out.println("Player one results: " + playerOneResults[counter]);         
    }

    Arrays.sort(playerOneResults);
    int c = Arrays.binarySearch(playerOneResults, 1);
    System.out.println(c); 


}
}

最佳答案

尝试此代码

public static void main(String args[]) {
    Die firstDie = new Die();
    int[] playerOneResults = null;

    firstDie.roll();
    System.out.println(firstDie.getFaceValue());

    Scanner userInput = new Scanner(System.in);
    System.out.println("PLease enter the name of player one");
    String playerOneName = userInput.next();

    System.out.println("Please enter the name of player two");
    String playerTwoName = userInput.next();

    System.out.println("Enter the number of dice to be thrown");
    int numDice = userInput.nextInt();

    System.out.println("First player's name: " + playerOneName);
    System.out.println("Second player's name: " + playerTwoName);
    System.out.println("Number of dice will be thrown: " + numDice);

    playerOneResults = new int[numDice];

    for (int counter = 0; counter != numDice; counter++) {
        firstDie.roll();
        playerOneResults[counter] = firstDie.getFaceValue();
        System.out.println("Player one results: " + playerOneResults[counter]);
    }

    Arrays.sort(playerOneResults);
    int position=0;
    while(position<0){
        int c = Arrays.binarySearch(playerOneResults, position,playerOneResults.length-1, 1);
        position=c;
        System.out.println(c);
    }


}

关于java - 为什么for循环外的变量不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24596772/

相关文章:

java - Android 中 findViewById() 上的 NullPointerException

java - android - 如何在已经膨胀的布局中膨胀 map fragment ?

AWS EC2 上的 Java Web 服务 SSL?

javascript - 为什么在 Javascript for 循环中包含变量声明?

javascript - For 循环和 getElementById

java - Spring Boot - SOAP WebService 不显示 WSDL

java - 在Java中使用For循环打印2D字符数组

arrays - Excel VBA删除给定索引具有混合值的行

php - PHP 中的 FOR 循环性能

loops - Lua for 循环不进行所有迭代