int score=68;
String mark =(score>=60) ? "及格" : "不及格";
学习总结:
(表达示) ?值1:值2 【三目运算符】
表达示运算规则 :“表达示”是逻辑运算,结果是boolean类型,
如果表达示结果是true,返回的是值1,如果表达示结果是false返回的是值2.
这里题目要求 值1=“及格”、值2="不及格"。都是String类型所以用Sting定义变量。
其实
boolean mark =(score>=60) ? true : false;
也是可以的,
不过用
String mark =(score>=60) ? "及格" : "不及格";
更直观一些。比如
mark = 70;
System.out.println(mark);
输出的 "及格" 是不是比 true 更直观呢
(score>=60) ? "及格" : "不及格" 的结果是"及格"和"不及格",而不是true或false。
String mark =(score>=60) ? "及格" : "不及格"; 这句话是个条件表达式,如A>B?C:D。相当于:
String mark;
if(score>=60){
mark="及格";
}else{
mark="不及格";
}
因为mark是一个字符串变量,"及格"与"不及格"是两个字符串,所以是String;boolean变量的值为true 或者false
“及格”、”不及格“不是String是什么?
当score>=60 时, 如果括号里输出是true,则把”及格“ 赋值给mark。