Mic*_*ald 9 java variables return
我正在使用模拟器来玩掷骰子,我试图从同一个方法返回两个值(或者我想要).
当我写回复语句时,我只是尝试将"&"编译并正确运行; 但我无法访问第二个返回值.
public static int crapsGame(){
int myPoint;
int gameStatus = rollagain;
int d1,d2;
int rolls=1;
d1 = rollDice();
d2 = rollDice();
switch ( d1+d2 ) {
case 7:
case 11:
gameStatus = win;
break;
case 2:
case 3:
case 12:
gameStatus = loss;
break;
default:
myPoint = d1+d2;
do {
d1=rollDice();
d2=rollDice();
rolls++;
if ( d1+d2 == myPoint )
gameStatus = win;
else if ( d1+d2 == 7 )
gameStatus = loss;
} while (gameStatus == rollagain);
} // end of switch
return gameStatus & rolls;
}
Run Code Online (Sandbox Code Playgroud)
当我返回值为:
gameStatus=crapsGame();
Run Code Online (Sandbox Code Playgroud)
它恰当地设置了变换的胜负,但如果我尝试的东西就像遵循以下声明一样简单:
rolls=crapsGame();
Run Code Online (Sandbox Code Playgroud)
它被赋予与gamestatus相同的值... 0或1(输赢).我能以任何方式访问第二个返回值吗?或者有一种完全不同的方式去做吗?
rge*_*man 11
创建自己的值保持器对象以保存两个值,然后返回它.
return new ValueHolder(gameStatus, rolls);
Run Code Online (Sandbox Code Playgroud)
可以返回一个具有多个值的数组,但这是神秘的,它对可读性没有任何作用.理解这意味着什么更容易...
valueHolder.getGameStatus()
Run Code Online (Sandbox Code Playgroud)
这意味着什么.
intArray[0]
Run Code Online (Sandbox Code Playgroud)
返回gameStatus & rolls
意味着"返回bitwise和gameStatus并滚动",这可能不是你想要的
你有一些选择:
归档时间: |
|
查看次数: |
37373 次 |
最近记录: |