为什么我得到java.lang.ArithmeticException:/由零?

时间:2016-03-29 22:04:56

标签: java greenfoot

我是java的初学者,我生成随机总和的代码会抛出一个奇怪的异常......

Foo

}

也许是因为我今天一直盯着我的屏幕,但我不知道为什么我会收到这个错误。

提前致谢!

1 个答案:

答案 0 :(得分:3)

如果this.max为1,2或3,则只设置n。如果您之前未将其设置为其他值this.max == 0,那么getal2 == Math.sqrt(0) == 0

您应该在default语句中添加switch个案,以处理n的所有其他值。抛出IllegalArgumentException可能是合适的。

switch(n) {
    case 1: this.max = 100;
            break;
    case 2: this.max = 150;
            break;
    case 3: this.max = 200;
            break;
    default: throw new IllegalArgumentException("Not 1, 2 or 3");
}

或者您可以设置合理的默认值,您可以设置this.max