2015-11-08 8 views
-5

Может кто-нибудь сказать мне, какие изменения необходимо сделать, чтобы избавиться от этой ошибки и почему это происходит?Исключение из потока «main» java.lang.ArrayIndexOutOfBoundsException: 0 ошибка в Java

public class Gambler { 

    public static void main(String[] args) { 
     int stake = Integer.parseInt(args[0]); // gambler's stating bankroll 
     int goal = Integer.parseInt(args[1]); // gambler's desired bankroll 
     int T  = Integer.parseInt(args[2]); // number of trials to perform 

     int bets = 0;  // total number of bets made 
     int wins = 0;  // total number of games won 

     // repeat T times 
     for (int t = 0; t < T; t++) { 

      // do one gambler's ruin simulation 
      int cash = stake; 
      while (cash > 0 && cash < goal) { 
       bets++; 
       if (Math.random() < 0.5) cash++;  // win $1 
       else      cash--;  // lose $1 
      } 
      if (cash == goal) wins++;    // did gambler go achieve desired goal? 
     } 

     // print results 
     System.out.println(wins + " wins of " + T); 
     System.out.println("Percent of games won = " + 100.0 * wins/T); 
     System.out.println("Avg # bets   = " + 1.0 * bets/T); 
    } 

} 
+0

Probabaly, потому что нет 3 аргумента в массиве 'args' ... Вы даже потрудились проверить? – James

+0

Какая линия? Когда вы просите о помощи, это хорошая идея, чтобы предоставить как можно больше полезной информации. – Smittey

+0

4-я линия int ставка ....... – susa1012

ответ

0
int stake = Integer.parseInt(args[0]); // gambler's stating bankroll 
int goal = Integer.parseInt(args[1]); // gambler's desired bankroll 
int T  = Integer.parseInt(args[2]); // number of trials to perform 

Вы, вероятно, хотите, чтобы проверить количество аргументов, которые вы получаете.

Вы, вероятно, хотите, чтобы взглянуть на это: https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html

Смежные вопросы