sub > 0 ?info :info2,这个是三元操作?:。在很多时候,这个操作非常有用。表达式
condition ? expression1 : expression2
当条件condition为真时计算第一个表达式(expression1),否则计算第二个表达式。
这个表达式的意思即为:
1.判断sub是否大于0
2.若sub>0,则用info表达式
3.若sub<=0,则用info2表达式
因为你这个sub表示的是用张三的成绩减去李四的成绩,所以,正数表示张三比李四高,否则李四比张三成绩要高。
sub > 0 ?info :info2 这个是一个三目运算符,是对if判断语句的简写。
表示如果sub>0这个条件满足,就是冒号前面的结果,否则就是后面的结果
还原成if语句,加上输出语句如下:
if(sub>0){
System.out.println(info );
}else{
System.out.println(info2 );
}
这两个的实际功能是一样的。
这个就是输出成绩高的, sub > 0 ?info :info2 就是一个运算,就是楼上说的,当sub>0就输出info,反之则输出info2,就相当于
if(sub>0)
{
System.out.println(info);
} else
{
System.out.println(info2);
}
三步运算符。
sub > 0 为条件,“?”为固定格式,info和info2都为值。
如果条件为true则用第一个值,反之则用第二个值。
你这里说的就是,当sub 大于0的时候,打印输出info,否则输出info2。
对于这个问题
String info2="李四的成绩比张三高" + (-sub) + "分";
还有这个,为什么是(-sub)呢?
因为定义的 int sub = zhangSan - liSi;
如果控制台输出的info2,则表明sub<=0,假设张三的成绩是50,李四的成绩是80,那么则会输出
"李四的成绩比张三高" + (50-80=-30) + "分",这样就不是高了撒,所以(-sub)=30,理所当然就要(-sub),不然显示不出高多少分。
希望你能采纳!
李四的成绩比张三高
int sub = zhangSan - liSi;