max>arr[x]?(max1=max):(max1=arr[x]);
如果max>arr[x]是true,则把max赋给max1,如果max>arr[x]是false,则把arr[x]赋给max1
这里为什么语句错误,问号后面不能赋值运算吗
你是否设接收类型 和值 比如说可以这样写 int max1=max>arr[x]?max:arr[x]);
希望对你有用 我也是新手 ~
这是不是有语法错误,x变量是在哪里定义的。三目运算要求第一个语句要是布尔类型的。
我这里测试了又编译错误Type mismatch: cannot convert from int to boolean。
补充下三目运算符基础:<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.
这里要考虑Java的运算符优先级,我将会在近期出一个关于这个优先级的博文,欢迎进行技术交流