Java 为什么可以';我不能用三元数吗?操作员在两个函数调用之间进行选择?
我最近正在编程,在使用时遇到了一个问题:操作数。这是我的密码Java 为什么可以';我不能用三元数吗?操作员在两个函数调用之间进行选择?,java,Java,我最近正在编程,在使用时遇到了一个问题:操作数。这是我的密码 Random rand = new Random(); for(int x = 0; x < 3; x++) { rand.nextInt(1) == 0 ? vertShip(board) : horizShip(board); } Random rand=new Random(); 对于(int x=0;x(美元板)是的,你也可以用4个字符来解决旅行推销员的问题。好吧,我不能。Joh
Random rand = new Random();
for(int x = 0; x < 3; x++) {
rand.nextInt(1) == 0 ? vertShip(board) : horizShip(board);
}
Random rand=new Random();
对于(int x=0;x<3;x++){
rand.nextInt(1)=0?垂直(板):水平(板);
}
我的编译器向我抛出一个错误,指出行的左侧(rand.nextInt(1)==0)必须是一个变量。我试过一些变体,比如
Random rand = new Random();
int a = rand.nextInt(1);
for(int x = 0; x < 3; x++) {
a == 0 ? vertShip(board) : horizShip(board);
}
Random rand=new Random();
int a=兰特·耐克斯汀(1);
对于(int x=0;x<3;x++){
a==0?垂直(板):水平(板);
}
或者如果语句位于左侧,但它们不能解决问题。有人能帮我吗?不是每个表达式都是语句。在此处使用
if
语句。请参阅JavaSE7Java语言规范中的一节
某些类型的表达式可用作下列语句
用分号表示
ExpressionStatement:
StatementExpression ;
StatementExpression:
Assignment
PreIncrementExpression
PreDecrementExpression
PostIncrementExpression
PostDecrementExpression
MethodInvocation
ClassInstanceCreationExpression
上述各项的表达式语句示例:
x = y;
++x;
--x
x++;
x--;
fn(); // Or donkey.fn();, etc.
new Donkey(this);
你不能做的是:
b ? f() : g();
f() + g();
但是,如果您执意要混淆代码,我想您可以编写:
fn(a == 0 ? vertShip(board) : horizShip(board));
(a == 0 ? vertShip(board) : horizShip(board)).fn();
(我想。我手头没有编译器,通常也不会写这样的代码。)编译器是对的。三元运算符返回一些内容,因此需要将其分配给变量。Java不是perl。使用if语句:
if (rand.nextInt(1) == 0) {
vertShip(board);
} else {
horizShip(board);
}
不能通过粘贴三元函数来构建函数调用语句?在前面
a == 0 ? vertShip(board) : horizShip(board); // is an expression
if (a == 0) vertShip(board); else horizShip(board); // is a statement
比较:
if (condition)
{
execute statement(s)
}
else
{
execute statement(s)
}
与:
使用适当的构造。实际的错误消息是什么?看起来没问题。确切的错误信息是什么?另外,
rand.nextBoolean()
可能更简单。“令牌“==”,无效的AssignmentOperator”和“赋值的左侧必须是变量”上的语法错误也会导致许多函数调用,但我们不必将结果分配给任何对象。在Perl中,您实际上可以将公共位提取出来:($rand->nextInt(1)==0?\&vertShip:\&HORIZHIP)->(美元板)代码>是的,你也可以用4个字符来解决旅行推销员的问题。好吧,我不能。John Skeet可以。只是为了好玩,这里有一个Haskell版本:(如果nextInt rand 1==0,那么vertShip else horizzhip)board
expression1 ? expression2 : expression3