我在用条件运算符 (?:) 比较两个数字时遇到问题

I am getting a problem comparing two numbers with the conditional operator (?:)

public class 个问题 {

public static void main(String[] args) 
{
    Scanner userInput = new Scanner (System.in);
    
    System.out.println("Enter two numbers: ");
    int num1 = userInput.nextInt() ;
    int num2 = userInput.nextInt() ;
    
  (num1==num2) ? System.out.println("Same"): System.out.println("Not same");  // i am getting an error in that line
    
}

}

如何将用户输入的这两个数字与条件运算符进行比较?

您应该将字符串响应分配给具有类似逻辑的三元表达式,然后打印该消息:

int num1 = userInput.nextInt();
int num2 = userInput.nextInt();

String msg = num1 == num2  ? "Same" : "Not same";
System.out.println(msg);

试试这样的方法:

System.out.println((num1 == num2) ? "Same" : "Not same");

Java 将程序的一些元素分成 语句 表达式 语句是做某事的指令,表达式是产生某些值的代码。可以写一个表达式忽略值(Math.sin(0);),称为表达式语句,但是语句本身没有值,不能做成表达式.

conditional/ternary 运算符 ?: 仅适用于 表达式 ;也就是说,它不是像 if 这样的通用流量控制工具,而是只能用于 select 两个备用值之间。由于System.out.println returns void(无值),只能作为语句调用,不能作为三元来使用。

您始终可以在完全不同的语句之间使用 if 到 select(通常并且最好是 块语句 );如果要将条件运算符与 System.out.println 一起使用,则必须将其用于 select 一个要作为参数传递给它的表达式:

System.out.println(condition ? "true" : "false"); // an expression of type String