为了账号安全,请及时绑定邮箱和手机立即绑定

为什么只是将for循环的截止条件从负数改到正数就不出现异常??

package com.imooc;

public class Project 

{

public static void main(String[] args) 

{

// TODO Auto-generated method stub


Project pro=new Project();

int m=pro.text();

System.out.println("result2="+m);

}

public int text()

{

int num=100;

try

{

            for(int i=10;i>-1;i--)

            {

            num=num+100/i;

            }

return num;

}

catch(Exception e)

{

e.printStackTrace();

System.out.println("循环抛出异常!!!");

System.out.println("result1:");

return -1;

}

}

}

问一下问什么我的for语句中i为什么只有设为-1时才会出项异常,设为1、2或者3都没有异常。

不应该应该在100除以3或者7的时候有小数的话就会有异常吗??


正在回答

4 回答

i> -1,当i = 0时,抛出异常,而且不会出现有小数的情况,100/i  / 操作符两边都是整型的话,值也是整型。

0 回复 有任何疑惑可以回复我~
#1

及第 提问者

你这一说,我晓得应该是我想的错误类型和实际捕获的不一样。。。。。。。^-^
2015-02-03 回复 有任何疑惑可以回复我~

我帮你测了下,好像正常吧,没有出现异常啊

0 回复 有任何疑惑可以回复我~
#1

及第 提问者

喔,我想明白了错误类型我搞错了,应该属算数运行上的错误,而不是输入匹配错误。。。。。。谢谢^-^
2015-02-03 回复 有任何疑惑可以回复我~

sorry,-1--是-2 ^_^

0 回复 有任何疑惑可以回复我~

如果你的条件成立的话,-1--时得到0,然后100/0,0是不能做除数的,所以报错吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么只是将for循环的截止条件从负数改到正数就不出现异常??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信