条件表达式:错误消息指出类型不完整

问题描述

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

使用条件表达式,编写一个语句,如果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;
      }