我正在使用模拟器玩掷骰子,并且试图从同一方法返回两个值(或者我想这样做)。
当我写我的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;
}
当我将值返回为:
gameStatus=crapsGame();
它适当地设置了赢或输的变量,但是如果我尝试执行以下语句中的简单操作:
rolls=crapsGame();
它被分配与gamestatus相同的值… 0或1(赢或输)。以任何方式可以访问第二个返回值?还是有完全不同的方法来解决?
创建自己的值持有者对象来保存两个值,然后将其返回。
return new ValueHolder(gameStatus, rolls);
可以返回具有多个值的数组,但这很神秘,对可读性没有任何作用。理解这意味着什么要容易得多…
valueHolder.getGameStatus()
比这意味着什么。
intArray[0]
问题内容: 由于发送给Java方法的参数指向调用方方法中的原始数据结构,因此它的设计者是否打算像其他语言(如C)那样使用它们来返回多个值? 还是这是对Java通用属性(变量是指针)的危险滥用? 问题答案: 很久以前,我与Ken Arnold(Java团队的一名成员)进行了一次对话,大概是在1996年的第一次Java One会议上。他说他们正在考虑添加多个返回值,以便您可以写类似: 当时和现在的推荐
问题内容: 如果实际查询不返回任何行,是否可以将查询中的所有列作为空列(不为null)或空行返回 问题答案: 通常,如果必须返回一个空行。 如果您的原始查询是 您可以将其变成子查询 这样可以确保查询的行数始终至少为1。
问题内容: 我想从Java方法返回两个对象,并且想知道这样做的好方法是什么? 我能想到的可能的方法是:回报HashMap(因为这两个对象是相关的),或者返回的对象。 更准确地说,我要返回的两个对象是(a)对象和(b)相同名称的逗号分隔。 我想从一个方法返回这两个对象,因为我不想遍历对象列表以获得逗号分隔的名称(我可以在此方法的同一循环中执行此操作)。 不知何故,返回a 看起来不是很优雅的方式。 问
问题内容: 我有一个查询,该查询返回状态的计数,该计数需要一些非常复杂的工作来计算。用户想深入到该列表,我认为最简单的方法是使用GROUP_CONCAT获取ID。 不幸的是,GROUP_CONCAT的结果被截断为1024(?!)个字符。 是否有可能获得超过1024个字符,否则我将以错误的方式处理吗? 问题答案: 您需要设置更高的值。这可以在会话级别或全局级别上完成。对于该会话中的其余查询,以下查询
在给定以下约束的情况下,是否可以以某种方式编译: 您不能向添加任何其他修饰符。 不包含或,您不能更改它。 无法将重写器添加到编译器管道。 您可以更改周围的其他所有内容。
我有以下问题:有一个计算两个整数之间相似性的布尔静态方法,我被要求返回4个结果: 在不更改方法的返回类型的情况下,它应该保持布尔值。 不更新/使用外部变量和对象的值