问:java问题,我先算出tc 然后print tc,就会报错 但直接在print 后面括号内列出

问:java问题,我先算出tc然后printtc,就会报错但直接在print后面括号内列出算tc的式子就不会错是为什么代码24-27行... 问:java问题,我先算出tc 然后print tc,就会报错 但直接在print 后面括号内列出算tc的式子就不会错是为什么 代码24-27行 展开
 我来答
qiufeng6407
2015-03-10 · TA获得超过149个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:132万
展开全部
// 楼主的问题主要是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);

 }
ccppv
2015-03-10 · TA获得超过2994个赞
知道大有可为答主
回答量:5074
采纳率:40%
帮助的人:2972万
展开全部
给tc赋一个默认值就可以了。你上面两个if并不一定会走进去,tc可能会出现没有值的情况。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lightmenow
2015-03-10 · TA获得超过330个赞
知道小有建树答主
回答量:319
采纳率:0%
帮助的人:154万
展开全部
这个检测异常,就是不用编译就能发现的异常。
前边俩个if增加了判断,并对tc赋值,有可能if都不成立,tc就为空了。
所以第27行会报错。
追问
11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-10
展开全部
声明变量时给个初始值 tc
追问
那为什么第29行不报错
追答
你看看它俩有啥区别 你26行是有可能不被执行 所以tc没有被初始化没有值 而29你写了等号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式