java限用三目运算符等级评价学生成绩等级.

java基础教程_兄弟连JAVA语法基础023_三目运算符与优先级_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
java基础教程_兄弟连JAVA语法基础023_三目运算符与优先级
||文档简介
踏实做事、认真做教育,无兄弟,不编程!|
总评分0.0|
&&兄​弟​连​j​a​v​a​视​频​教​程​,​专​注​j​a​v​a​教​程​,​提​供​专​业​的​j​a​v​a​视​频​教​程​下​载​。​j​a​v​a​基​础​教​程​_​零​基​础​学​习​j​a​v​a​_​兄​弟​连​J​A​V​A​语​法​基​础​。​l​a​m​p​b​r​o​t​h​e​r​.​n​e​t
大小:251.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢你真的会用 Java 中的三目运算符吗? | 程序师> java条件运算符,三目运算符:类型转换导致的异常
java条件运算符,三目运算符:类型转换导致的异常
ogj1985 & &
发布时间: & &
浏览:94 & &
回复:0 & &
悬赏:0.0希赛币
java条件运算符,三目运算符:类型转换导致的错误
今天在调试代码时,发现这样一个错误,感觉挺有意思,跟想象中的结果不太一样。拿出来大家看看,大家是否一时也未发现错误原因?代码1:  String flag = "XXX";
Boolean expected = "false".equals(flag)
false :("true".equals(flag)
true : null);代码1 会抛个NullPointerException。代码2:  String flag = "XXX";
Boolean expected = "false".equals(flag)
Boolean.FALSE :("true".equals(flag)
Boolean.TRUE : null);代码2 则正常执行。代码3:  Boolean c =
boolean b =代码3运行会报个NullPointerException,据此得出一个基本事实,给基本布尔类型变量赋null值,是会抛空指针异常的。仍有疑惑的朋友,请往下看:条件表达式基本格式为:& 逻辑运算表达式 表达式1:表达式2;&&& “逻辑运算表达式”返回一个布尔值,即true 或 false, 然后根据布尔值,返回表达式1或表达式2的值,在表达式1和表达式2计算值的过程中,有类型转换的过程,即,如果表达式1的类型是Boolean,表达式2类型是boolean,表达式2的值可以被转成Boolean。&&& 为方便讲解,将代码1的条件运算语句表示为Boolean expected = A
D : E);代码1运算过程是这样的,先计算A值,如果A是true, 则计算并返回B值;如果A是false,则计算返回(C
D : E)值。代码1因为A是false,所以会去计算(C
D : E)的值,因为B是boolean,所以(C
D : E)的值也应该返回boolean值,这儿可以看作将(C
D : E)返回值存放于一个boolean的临时变量x里,因为返回的是null,将null赋给boolean临时变量x,所以就NullPointerException异常了。&&& 好了,分析了代码1,那么代码2为什么是正确的,相信就不难理解了。以上问题主要分析了java条件表达式的详细运算过程以及其中的表达式类型转换,从而,加深了对一些基本知识的理解,避免犯一些看似低级的错误。结束了,针对此问题,粘上一些相关代码,供参考:代码4:  String flag = "XXX";
Boolean expected = "XXX".equals(flag)
("true".equals(flag)
true : null)
:代码4抛空指针异常。代码5:  String flag = "XXX";
Boolean expected = "XXX".equals(flag)
("true".equals(flag)
true : null)
: Boolean.FALSE;
System.out.print(expected);代码5正常执行,打印出null。
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&Java的表达式和三目运算符
Java的表达式:符合一定语法规则的运算符合操作数的序列;对表达式中操作数进行运算得到的结果称为表达式的值,表达式值的数据类型称为表达式的类型;表达式的运算顺序应按照运算符的优先级从高到底的顺序进行,优先级相同的运算符按照事先约定的结合方向进行。
三目条件运算符:x?y:z&
其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值
public class ConditionalOperator {
&public static void main(String[] args) {
&&int score = 80;
&&int x = -100;
&&String type = score
& 60?"失败":"成功";
&&int flag = x &
0?1:(x==0?0:-1);&&//此表达式是从里括号里面向外运算的
&&System.out.println("type=" +
&&System.out.println("flag=" +
打印的结果是:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 c语言运算符等级 的文章

 

随机推荐