2 lzz145 lzz145 于 2016.02.29 19:20 提问

新手关于java三元运算符的提问

max>arr[x]?(max1=max):(max1=arr[x]);

如果max>arr[x]是true,则把max赋给max1,如果max>arr[x]是false,则把arr[x]赋给max1
这里为什么语句错误,问号后面不能赋值运算吗

4个回答

qq_28504185
qq_28504185   2016.02.29 19:45

你是否设接收类型 和值 比如说可以这样写 int max1=max>arr[x]?max:arr[x]);

希望对你有用 我也是新手 ~

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 19:49

这是不是有语法错误,x变量是在哪里定义的。三目运算要求第一个语句要是布尔类型的。
我这里测试了又编译错误Type mismatch: cannot convert from int to boolean。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 19:54

补充下三目运算符基础:<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.

wanghjbuf
wanghjbuf   2016.02.29 20:29

这里要考虑Java的运算符优先级,我将会在近期出一个关于这个优先级的博文,欢迎进行技术交流

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java三元运算符注意事项
格式: (条件表达式)?表达式1:表达式2; 条件表达式:最后结果需要一定为true或者false,如果为null运行后会报错,如果为其他字符代码格式错误,编译器会提示 表达式1:条件表达式为true时执行 表达式2:条件表达式为false时执行 这里表达式1,2可以是一个变量,一个固定的常量,一个方法,是一个可执行的表达式就行. 实例 String a
Java中三元运算符值得注意的地方
三元运算符号要注意的地方今天在调试程序的时候发现一个有意思的问题 class Main{ static class User { Integer age ; public Integer getAge() { return age; } public void setAge(Integer age)
【Java】(三)运算符小结(比较、逻辑、三元运算符)
前面介绍的两种运算符都比较简单,下面我们来看一下比较复杂一点的三种运算符:比较运算符、逻辑运算符、三元运算符。         一、比较运算符 又叫关系运算符,用于判断两个被操作数的大小及是否相等的关系。使用比较运算符其返回结果一定为布尔值。 运算符 运算规则 范例 结果 == 相等于 4==3
三元运算符的优先级
在QT2.3.10的源代码中看到如下使用三元运算符的方法,但不知道具体的运算的顺序    const QCanvasItem* i1 = s1 ?       (const QCanvasItem*)s1 : p1 ?       (const QCanvasItem*)p1 : r1 ?       (const QCanvasItem*)r1 : e1 ?       (const QCa
关于if else 和 三目运算符的效率问题(java 版)
1.从类型转换上看,因为三目运算符在做判断的时候需要考虑到类型转换的问题,而if else 不需要考虑类型转换。 所以 if else 效率高一点。 2.从总体上看 A:需要考虑到循环自身所占用的时间。 B:需要考虑到赋值以及循环内的其他运算符所占用的时间。 所以 三目运算符效率高一点. 接下来一段代码来演示 2.p
Java学习之三元运算符-if语句
三元运算符package basis.day02; /** * 三元运算符(条件表达式)?表达式1:表达式2;(若为真输出1,若为假输出2) * 其中表达式1和表达式2的数据类型要一致。 * 三元运算符一定程度上可以用if-else语句表示(但是反之不行) * @author LENOVO * */ public class TestTer { public static void
java中三元运算符详解
什么是三元运算符呢!无疑其操作元有三个。第一个是表达式,剩余两个是值,条件表达式为真时,取第一个值,为假时,取第二个值。 示例代码如下: boolean a = 20 < 45 ? true : false 三元运算符的优先级高于赋值运算符,故第一个表达式为真,取第一个值,返回 a=true; 三元运算符用于做判断,其等价的if-else语句如下: boolean a; if (20 <
JAVA中的三元运算符
前段时间比较懒所以没有发表关于JAVA的基础知识的文章,今天把前段时间的补上。 这篇是关于JAVA中的三元运算符,掌握并且利用好可以简化一些代码; 三元运算符 用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。 条件表达式?表达式1:表达式2; 如果为true 则判定为表达式1,否则判定为表达式2 if(条件表达式){ 表达式1
java中的三元运算符没那么肤浅
转自:http://www.mamicode.com/info-detail-1010428.html  最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题。鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故在此总结,当然仅为个人观点,水平有限,不足之处,还请大家多多指出,互相交流学习。   
从头认识java-2.5 三元运算符和字符串操作符
这一章节我们来讨论一下三元运算符和字符串操作符。1.三元运算符(condition?result :result)为什么会说这个呢?其实就是想劝大家不要过多使用它,因为它降低代码的可读性。看下面的代码:package com.ray.ch01; public class Test { public static void main(String[] args) { int a = 1,