간단한 루프를 추가하여 Objective-C의 온도 눈금 변환 콘솔 프로그램에 "재생 가치"를 추가하려고합니다.목표 -c에서 처음으로 프로그램 루프 만들기
지금, 여기 내 현재 main.m 파일에 대한 코드입니다
#import <Cocoa/Cocoa.h>
#import "class.h"
int main(int argc, char *argv[])
{
int result;
int prompt, prompt2, sourceTempText;
double sourceTemp;
printf("Please choose a source temperature scale:\n[1] Fahrenheit\n[2] Celsius\n[3] Kelvin\n[4] Rankine\n\n");
result = scanf("%i", &prompt);
if (result != 1)
printf("I couldn't understand your input, I need only one number!");
else if (result == EOF)
printf("I apologize, I encountered an error when trying to read your input.");
else if (result == 1)
{
printf("\nNow, please enter the temperature you would like to convert:\n\n");
scanf("%lf", &sourceTemp);
Temperature *converter = [[Temperature alloc] init];
switch (prompt)
{
case 1:
//end-user chooses Fahrenheit
[converter setFahrenheitValue:sourceTemp];
sourceTempText = 1;
break;
case 2:
//end-user chooses Celsius
[converter setCelsiusValue:sourceTemp];
sourceTempText = 2;
break;
case 3:
//end-user chooses Kelvin
[converter setKelvinValue:sourceTemp];
sourceTempText = 3;
break;
case 4:
//end-user chooses Rankine
[converter setRankineValue:sourceTemp];
sourceTempText = 4;
break;
}
printf("\nNow, please choose a target temperature scale:\n[1] Fahrenheit\n[2] Celsius\n[3] Kelvin\n[4] Rankine\n\n");
scanf("%i", &prompt2);
char *scales[4] = { "Fahrenheit", "Celsius", "Kelvin", "Rankine" };
switch (prompt2)
{
case 1:
//end-user chooses Fahrenheit
printf("%lf degrees %s is %lf degrees Fahrenheit\n", sourceTemp, scales[prompt-1], [converter fahrenheitValue]);
break;
case 2:
//end-user chooses Celsius
printf("%lf degrees %s is %lf degrees Celsius\n", sourceTemp, scales[prompt-1], [converter celsiusValue]);
break;
case 3:
//end-user chooses Kelvin
printf("%lf degrees %s is %lf degrees Kelvin\n", sourceTemp, scales[prompt-1], [converter kelvinValue]);
break;
case 4:
//end-user chooses Rankine
printf("%lf degrees %s is %lf degrees Rankine\n", sourceTemp, scales[prompt-1], [converter rankineValue]);
break;
}
}
}
OK, 그래서 나는 그들이 할 것인지를 묻는의 printf 문을 사용하여 사용자에게 메시지를 표시하고 싶습니다 그들이 처음으로 전환을 한 후에 다른 온도로 변환하십시오.
프롬프트에서 최종 사용자에게 0을 눌러 프로그램을 종료하거나 1을 눌러 다른 변환을 요청할 것입니다.
내 첫 번째 성향은 일단 최종 사용자가 자신의 선택을 입력하면 scanf에서 0 또는 1로 설정 될 정수 변수를 선언하는 것이 었습니다.
그런 다음 새 변수 == 1이면 처음으로 되돌아갑니다. 그렇지 않으면 프로그램을 종료합니다.
아주 간단합니다.
궁금한 점은이 프로그램을 루프하는 더 효율적인 방법이 있는지, 아니면 지금 당장 가지고있는 기본 지식으로는 좋은 방법인지 궁금합니다.
안녕하세요. 나는 이미 그렇게 했어야했는데 그렇게하도록 지시 받았지만 xD를 잊어 버렸습니다. 어쨌든 다른 기능에 프로그램의 여러 부분을 저장하는 개념을 이해하는 데 도움이되는 좋은 참고 자료가 있습니까? – Qcom
글쎄, 나는 거의 모든 언어에있어 매우 기본적인 것이다. 기본 개념은 0 개 이상의 인수를주고 그 중 하나의 값이 나옵니다. 반환 값 그래서 당신은'int getOneInt (char * message) {printf ("% s \ n", message); ... scanf ... etc .. return i; }'그러면 사용자로부터 하나의 int를 가져온 다음이를 반환합니다. 따라서 int가 필요할 때마다 int a = getOneInt ("이제 소스 스케일을 입력하십시오.")를 실행하면 메인 루프가 해당 이슈를 연속으로 세 번 처리하지 않아도됩니다. – mvds
죄송합니다. 방금 언급 한 것처럼 printf의 반복 인스턴스를 사용하는 대신 클래스 파일에 일반적으로 사용되는 메소드를 추가하는 것이 의미하는 바는 이미 의미를 알고 있습니다. 그래, 나는 새로운 fo sho ahaha 다. – Qcom