问题描述
我似乎无法弄清楚。我觉得这很容易,我想念它。我不断收到一条错误消息,指出类型不完整并指向吗?我在做什么错了?
使用条件表达式,编写一个语句,如果numUsers
为1,则递增updateDirection
,否则递减numUsers
。
例如:如果numUsers
为8,而updateDirection
为1,则numUsers
为9;如果updateDirection
为0,则numUsers
变为7。
提示:以“ numUsers = ...
”开头。
import java.util.Scanner;
public class UpdateNumberOfUsers {
public static void main (String [] args) {
Scanner scnr = new Scanner(system.in);
int numUsers;
int updateDirection;
numUsers = scnr.nextInt();
updateDirection = scnr.nextInt();
String condStr;
condStr = (numUsers < 8) ? +1 : -1;
System.out.println("New value is: " + numUsers);
}
}
解决方法
我只给您提供指导,而不是给您完整的答案,因为它看起来像个练习,最好自己动手做。
尝试在没有三元运算符的情况下写同一行:
if (numUsers < 8) {
condStr = +1;
} else {
condStr = -1;
}
此代码:
- 从不更新
numUsers
的值 - 不使用
updateDirection
的值 - 使用不兼容的值(将字符串设置为-1或+1没有意义)
增减运算符:
myVar++;
myVar--;
等效项(注意运算符的顺序):
myVar += 1;
myVar -= 1;
完整表格:
myVar = myVar + 1;
myVar = myVar - 1;
现在,您需要使用这些运算符根据值numUsers
(需要使用变量$ {1})来递增/递减numUsers++;
(因此numUsers--;
或updateDirection
)。 if
条件或三元条件)。
您的代码中不需要condStr
。
谢谢你们俩给我的帮助和建议。我能够完成任务!这是我输入的内容,所有内容都能完美输出。感谢jhamon没有给我答案,而是让我动脑筋和您提供的指南。
if (updateDirection >= 1) {
numUsers += 1;
}
else {
numUsers -= 1;
}