问:java问题,我先算出tc 然后print tc,就会报错 但直接在print 后面括号内列出
问:java问题,我先算出tc然后printtc,就会报错但直接在print后面括号内列出算tc的式子就不会错是为什么代码24-27行...
问:java问题,我先算出tc 然后print tc,就会报错 但直接在print 后面括号内列出算tc的式子就不会错是为什么 代码24-27行
展开
4个回答
展开全部
// 楼主的问题主要是tc可能没有正确初始化
// 所以会有这个异常
// 解决方案是在输出tc之前一定要保证tc已经被初始化(赋值)
// 见代码的两个解决方案
public static void main(String[] args) {
// 解决方案1 给tc赋值
double tc = 0;
int cj = 9;
if (cj <= 200) {
System.out.println(tc = cj * 0.03);
} else if (cj <= 500 && cj > 200) {
tc = 200 * 0.03 + (cj - 200) * 0.05;
} else { // 解决方案2 加一个else 给tc赋值
tc = 0;
}
System.out.println(tc);
}
展开全部
给tc赋一个默认值就可以了。你上面两个if并不一定会走进去,tc可能会出现没有值的情况。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个检测异常,就是不用编译就能发现的异常。
前边俩个if增加了判断,并对tc赋值,有可能if都不成立,tc就为空了。
所以第27行会报错。
前边俩个if增加了判断,并对tc赋值,有可能if都不成立,tc就为空了。
所以第27行会报错。
追问
11
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-03-10
展开全部
声明变量时给个初始值 tc
追问
那为什么第29行不报错
追答
你看看它俩有啥区别 你26行是有可能不被执行 所以tc没有被初始化没有值 而29你写了等号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询