2013-11-03 36 views
0

我正在做一个电脑版的游戏称为骰子。 我跑进从我的阵列显示一些数字的一些问题,任何人都可以帮我请了如何将下一个数组中显示的所有值:int []数组显示

int SideBetNumber = Console.readInt("How many side bets would you like to make ? (Introduce a number, minimum 1, maximum 6.)"); 

int[] SBNArray = new int[SideBetNumber]; 
int[] sbArray = new int[SideBetNumber]; 

int s = 0; 

for (s = 0; s <= (SideBetNumber -1) ; s++) { 
    SBNArray[s] = Console.readInt("On which number would you like to put a side bet ?"); 
    sbArray[s] = Console.readInt("Currently you have " + money + " chips, how much would you like to bet ?"); 
    money = money - sbArray[s]; 
    System.out.println("Thank you for your " +sbArray[s]+ " chip side bet on number " +SBNArray[s]+"."); 
    System.out.println(); 
} 

PointEstablisher(numberDice ,bet ,money, SBNArray, sbArray, s); 

我的困难是,这是一个方法,我我转给另一个公共静态无效...这是我传:

PointEstablisher(numberDice ,bet ,money, SBNArray, sbArray, s); 

和接收:

public static void PointEstablisher(int numberDice,int bet, 
    int money,int[] SBNArray,int[] sbArray, int s) 

我知道,这是这么长时间,但是: 如何显示所有的SBNArray和sbArray值,因为索引号取决于用户引入的SideBetNumber ...我不能只输入SBNArray(s),因为它给了我错误......或者我在SBNArray不能键入(3),因为它可能存在,也可能没有,取决于用户的选择...

我想这你,但没有奏效:

if (SBNArray[0] != 0) { 
    System.out.println("SBN 1 is " +SBNArray[0]); 
    }else { 
     System.out.println("NO SBN 1 !!!"); 
    } 
    if (sbArray[0] != 0) { 
    System.out.println("sb 1 is " + sbArray[0]); 
    }else { 
     System.out.println("NO sb 1 !!!"); 
    } 

    if (SBNArray[1] != 0) { 
    System.out.println("SBN 2 is " +SBNArray[0]); 
    }else { 
     System.out.println("NO SBN 2 !!!"); 
    } 
    if (sbArray[1] != 0) { 
    System.out.println("sb 2 is " + sbArray[0]); 
    }else { 
     System.out.println("NO sb 2 !!!"); 
    } 

    if (SBNArray[2] != 0) { 
    System.out.println("SBN 3 is " +SBNArray[0]); 
    } else { 
     System.out.println("NO SBN 3 !!!"); 
    } 

    if (sbArray[2] != 0) { 
    System.out.println("sb 3 is " + sbArray[0]); 
    }else { 
     System.out.println("NO sb 3 !!!"); 
    } 
enter code here 

但事与愿违不工作:java.lang.ArrayIndexOutOfBoundException:...

任何人都可以帮助我只显示数组的现有值?

回答

1

您应该遍历数组,而不是逐个比较它们。

for (int i = 0; i < SBNArray.length; i++){ 
    if (sbArray[i] != 0) { 
     System.out.println("sb " + i + " is " + sbArray[i]); 
    } else { 
     System.out.println("NO sb " + i + " !!!"); 
    } 
} 

然后对其他阵列做同样的事情。你甚至可以为此做一个私人的方法,以防止重复自己。

+0

谢谢,我只是尝试它和它的作品完美,它给我的值在阵列和停靠在数组的末尾,所以没有更多的ArrayIndexOutOfBoundExeption的 –

0

如果SBNArray []和sbArray []的值是正确的,它们的大小是'SideBetNumber',也许这将起作用:(我在这里是一个新手,这是我的第一个答案。如果不能帮助你,我只能说“对不起!”)

for (int i=0;i<SideBetNumber;i++) { 
if (SBNArray[i] != 0) { 
    System.out.println("SBN "+(i+1)+" is " +SBNArray[i]); 
} else { 
    System.out.println("NO SBN "+(i+1)+" !!!"); 
} 
if (sbArray[i] != 0) { 
    System.out.println("sb "+(i+1)+" is " + sbArray[i]); 
} else { 
    System.out.println("NO sb "+(i+1)+" !!!"); 
} 
} 
+0

谢谢你,这是几乎相同的,这与以前的答案,我相信这个太工程 –