条件表达式:错误消息说不完整的类型

问题描述 投票:0回答:3

我似乎无法弄清楚这一点。我觉得这很容易,以至于我想念它。我不断收到一条错误消息,指出类型不完整并指向 ?我做错了什么?

使用条件表达式,编写一个语句,如果

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);
   }
}
java if-statement conditional-statements
3个回答
1
投票

谢谢你们给我的帮助和建议。我能够完成作业!这是我输入的内容,一切都完美输出。谢谢 jhamon 没有给我答案,让我动用我的大脑和你提供的指南。

if (updateDirection >= 1) {
         numUsers += 1;
      }
      else {
         numUsers -= 1;
      }

0
投票

我只给你指导,而不是完整的答案,因为它看起来像一个练习,最好自己做。

尝试在没有三元运算符的情况下编写同一行:

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
(您需要使用
numUsers++;
条件或三元条件的变量)来递增/递减
numUsers--;
(所以
updateDirection
if
) . 您的代码中不需要
condStr


0
投票

numUsers = (updateDirection == 1) ?用户数 + 1 : 用户数 - 1;

© www.soinside.com 2019 - 2024. All rights reserved.