java中的条件运算符是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的条件运算符是啥?相关的知识,希望对你有一定的参考价值。

这个需要你对编程的三元表达式有一定的基础。首先三元表达式并不只是针对java在其他语言中如javascript和Oracle以及其它语言中都可以使用。

第一点:三元表达式顾名思义就是三个表达式,第一个是判断条件结果只要是Boolean类型就可以,第二个是值或者表达式,第三个也一样,如果表达式一是true则执行值二,如果为false则为值三

public static void main(String[] args)
boolean x = true;
boolean y = true;
System.out.println(x ? y ? 1 : 2 : 3);

添加上括号

public static void main(String[] args)
boolean x = true;
boolean y = true;
System.out.println(x ? (y ? 1 : 2 ): 3);

拆分两步更容易理解:

参考技术A 只有一个:就是?号,表示选择!
结构:结果=判断式?表达式1:表达示2;
意示:如果判断式成立,结果取前者的值,反之,取后者值.
用途:可代替大部分选择结构!结构极为简单!
难点:多重选择,嵌套选择!
1.多重选择:
例如经典的按成绩分等级学生的问题:
int b=88;//表示学生成绩;
String a=b>90?"优等”:b>60?"中等":“差等”;
那么这个结果就是中等,多重选择适用于单一条件进行选择判断的情况,比如果这个只比成绩,先看分数是否大于90,不大于,选者:号后边的,就进入等二个表达式,看是否大于60,是,选者"中等"!了!
2.嵌套选者:用于多个条件综合选者时!
例如,经典问题,买机票分头等舱和经济舱,也分淡季和旺季!
分析:先在大结构选择里判断淡旺季,再在两个表达示中区分舱位(判断顺序反了也可)。
int a=6;//表示月份,1到12月皆可,假设5到10月为旺季;
int b=1;//表示舱位;
首先,外层选者结构样式:
String c=a<1||a>12?"输入错误":(a>=4&&a<=10?(表达式1):(表达式2));//这一步实现淡旺季判断,括号不要也可!
再分别在表达中填入舱种的判断;
表达式1:b=1?"打八折":b=2?"打五折":"输入错误"
表达式2:b=1?"打四折":b=2?"打二折":"输入错误"
总结构为:String c=a<1||a>12?"输入错误":(a>=4&&a<=10?(b=1?"打八折":b=2?"打五折":"输入错误"):(b=1?"打四折":b=2?"打二折":"输入错误"));
括号完全可以省略,保留只是为了让你结构清晰!
这样就对不同条件的选择进行了筛选!
ps :输出结果值的类型只能是同一种,不能实现既有int 类型,又有String 类型,学识尚浅,希望我的回答对楼主有所帮助!
参考技术B 条件运算符形式:
  关系表达式 ? 表达式1 : 表达式2
求值规则:
  求解关系表达式,根据关系表达式的布尔值决定取值:关系表达式的值为true时取表达式1的值;关系表达式的值为false时取表达式2的值。
说明:
  1、条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。   2、JAVA中条件运算表达式中的关系表达式值的类型必须为布尔类型,只能是true或false。   3、结合性也是右结合性。   4、与C语言不同的是,JAVA中条件表达式的值必须参与运算。   public class demo
public static void main(String[]args)
int a=10,b=20,y;
a>b?(y=a):(y=b;) //1,这样写是错误的
y=a>b?a:b; //2,这样写是正确的
y=a<b?b:b<c?a:c; //3,这样写是正确的


  以上程序中,1处错误是由于条件表达式的值没有参与运算,不能构成语句。3处(b<c?a:c)先结合,再将这个值参与到另一个条件运算中去,是合法的,这也说明了条件运算符的右结合性。
参考技术C Java种的条件运算符是指如下表达式: 关系表达式 ? 表达式1 : 表达式2,用来进行逻辑判断。
求解关系表达式,根据关系表达式的布尔值决定取值:关系表达式的值为true时取表达式1的值;关系表达式的值为false时取表达式2的值。
1、条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。
2、JAVA中条件运算表达式中的关系表达式值的类型必须为布尔类型,只能是true或false。
3、结合性也是右结合性。
4、与C语言不同的是,JAVA中条件表达式的值必须参与运算。例子如下:
publicclassdemo
publicstaticvoidmain(String[]args)
inta=10,b=20,y;
a>b?(y=a):(y=b;)//1,这样写是错误的
y=a>b?a:b;//2,这样写是正确的
y=a<b?b:b<c?a:c;//3,这样写是正确的

参考技术D java中的条件运算符即三目运算符,它是一个特殊的运算符,其语法形式如下:
布尔表达式?表达式1:表达式2
运算过程:如果布尔表达式的值为true,就返回表达式1的值,否则返回表达式2的值,例如:
int sum=90;
String str=sum<100 ? "失败" : "成功";
等价于下列代码:
String str=null;
if(num<100)
str="失败";
else
str="成功";

三目运算符和if……else语句相比,前者使程序代码更加简洁。

&在Java中是啥意思?

在java里面这个是一个‘与’运算符,就是二进制中的 同为1才为1.
比如 x = 5&3;
5 = 0101;
3 = 0011;
x = 0001;
参考技术A 一个运算符,按位与.区别与 &&
如:
int a = 10;
int b =2;
a&b=2 ,按位与,算术运算..1010&0010 = 0010
a&&b = true 并且,逻辑运算.本回答被提问者采纳
参考技术B 位运算符 参考技术C & 按位与、逻辑与 参考技术D and的缩写 就是和的意思

以上是关于java中的条件运算符是啥?的主要内容,如果未能解决你的问题,请参考以下文章

java 四个点是啥特殊运算符?

三元表达式是啥?

thinkphp <if> 标签比较中的 或者 用 OR ,那么 且 是否用 AND 或者是啥?

C语言中的冒号(:)是啥意思?

java中的 条件运算符的使用

三元条件运算符中的多个条件?