在下面的脚本中,我在ternary
语句的else if
部分使用了if
语句,并将两者并置。在这种情况下,我应该替换if
中的其他else if
语句吗?
var attackOpt = prompt('Which attack option does Angelo use in this turn?');
// Remaining number of times Angelo can cast spells:
var angMP = 3;
// Validity Check to see if the attack option entered can be executed:
while (true) {
if (attackOpt === 'slash') {
break;
}
else if (attackOpt === 'magic') {
(angMP) ?
break;
: attackOpt = prompt('Angelo can no longer cast spells. Select again.');
}
}
答案 0 :(得分:3)
是的,它会起作用,但它会使代码难以阅读。考虑修改您的' while'而是循环:
while (attackOpt !== 'slash' && angMP) {
attackOpt = prompt('Angelo can no longer cast spells. Select again.');
}
当然,这是一种风格选择,完全取决于你。
答案 1 :(得分:2)
是的,你可以在允许表达式的任何地方使用三元运算符表达式(它不是语句)。
但是三元运算符使用表达式作为其3个参数。 break
不是表达,而是声明。你不能在那里使用break
。
您必须使用if
声明。
答案 2 :(得分:0)
不需要它会正常工作而没有任何问题
(angMP) ? break : attackOpt = prompt('Angelo can no longer cast spells. Select again.');