0

通常、この例外はゼロ除算でスローされます。唯一の問題は、分母の変数の値を 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
4

1 に答える 1

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);

}

于 2013-10-27T16:00:33.330 に答える