저는 첫 번째 객관적인 C 프로그램을 작성하고 있습니다. Stephen Kochan가 프로그래밍 한 Objective-C 2.0 프로그래밍과 같은 매우 간단한 계산기를 만드는 것입니다.간단한 Objective-C 계산기 프로그램 연속 인쇄
어쨌든 프로그램을 실행할 때마다 계속해서 똑같은 것을 반복해서 인쇄하므로 다른 것을 입력 할 수있는 옵션이 주어지지 않습니다. 코드는 아래에 있습니다. 누군가가 while 루프와 switch 함수 사이에 문제가 있다고 생각하면 도움이 될 것입니다. 미리 감사드립니다. 한마디로
#import <Foundation/Foundation.h>
@interface Calculator : NSObject {
double number, accumulator;
char operator;
}
-(void) add: (double) n;
-(void) subtract: (double) n;
-(void) multiply: (double) n;
-(void) divide: (double) n;
@end
@implementation Calculator
-(void) add: (double) n {
accumulator += n;
NSLog(@"%fl", accumulator);
}
-(void) subtract: (double) n {
accumulator -= n;
NSLog(@"%fl", accumulator);
}
-(void) multiply: (double) n {
accumulator *= n;
NSLog(@"%fl", accumulator);
}
-(void) divide: (double) n {
if (n == 0)
NSLog(@"Error! You can't divide by 0!");
else
accumulator /= n;
NSLog(@"%fl", accumulator);
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
double number, accumulator;
char operator;
Calculator *myCalc = [[Calculator alloc] init];
NSLog(@"Begin calculations by typing a number then S");
scanf("%lf, %c", &accumulator, &operator);
while (operator != 'E') {
NSLog(@"%lf", accumulator);
NSLog(@"What would you like to do next?");
scanf("%lf, %c", &number, &operator);
switch (operator) {
case '+':
[myCalc add: number];
break;
case '-':
[myCalc subtract: number];
break;
case '*':
[myCalc multiply: number];
break;
case '/':
[myCalc divide: number];
break;
default:
break;
}
}
}
return 0;
}
NSLog (@ "다음에 하시겠습니까?"); scanf ("% lf, % c", & number, & 연산자); 이것은 끊임없이가는 대신에 이것들에 도달하면 프로그램을 멈추게 할 것입니다. – user2277872
나는 그것을 놓쳤습니다! 하지만 불행히도 여전히 계속 실행 중입니다. 이유는 모르겠지만 ... –
@AshleyElisabethStallings 어, 이전에 언급 한 내용이 어디로 갔는지 모르겠지만 반복하겠습니다. 시도하기 전에 C 언어를 배우는 것이 좋습니다. Objective-C로 시작하십시오 (그리고 여기에는 언어뿐만 아니라 C 표준 라이브러리에 대한 지식도 포함되어 있습니다). 그렇지 않으면 나중에 문제가 발생할 것입니다. –