抛出算术异常,但为什么呢?

时间:2013-10-27 15:52:28

标签: ios

通常,除以零时抛出此异常。唯一的问题是当我在分母中nslog变量的值时,值不为零。代码:

breuk.m

#import "breuk.h"

@implementation breuk
@synthesize tellerBreuk;
@synthesize noemerBreuk;
@synthesize ggd;
@synthesize quotientBreuk;

- (id)initWithTeller:(int)mijnTeller andNoemer:(int)mijnNoemer{

self = [super init];
if(self){
    int u = mijnTeller;
    int v = mijnNoemer;
    int temp;

    while (v != 0){
        temp = u % v;
        u = v;
        v = temp;
    }
    ggd = u;
    self.tellerBreuk = mijnTeller/ggd;
    self.noemerBreuk = mijnNoemer/ggd;
    NSLog(@"%i de ggd is %i", self.noemerBreuk, ggd);

    //self.quotientBreuk = (float)mijnTeller/mijnNoemer;
}
return self;
}

@end

1 个答案:

答案 0 :(得分:2)

见评论:

if(self){
int u = mijnTeller; // For example u == 0
int v = mijnNoemer; // and v == 0
int temp;

while (v != 0){ // you don't come in while loop
    temp = u % v;
    u = v;
    v = temp;
}
ggd = u; // ggd is then == 0
self.tellerBreuk = mijnTeller/ggd; // Error: division by zero
self.noemerBreuk = mijnNoemer/ggd;
NSLog(@"%i de ggd is %i", self.noemerBreuk, ggd);

}