2017-04-05 1 views
1

조건 이후에 내 코드 루프를 다시 만들려고하는 문제에 봉착했습니다.if 조건, C 추측 게임 후 코드 루프를 다시 만드는 방법

플레이어 1에게 0에서 99 사이의 숫자를 입력하도록 요청합니다. 코드를 다시 입력하도록 요청해야하는 코드를 입력하면 아무것도 입력하지 않습니다. 문제는 솔직히 내 코드에서이를 활성화하는 방법을 모른다는 것입니다. ,

int secretnumber; 
    int guesses; 

    printf("Player 1: Type a number between 0 and 99 and press return:\n"); 
    scanf("%d",&secretnumber); 

    if (secretnumber > 99 || secretnumber < 0) 
    printf("Secret number cannot be greater than 99 or below 0."); 

    else 
     printf("Type the number of guesses that player 2 gets and press return: \n"); 
     scanf("%d",&guesses); 

나는이 새로운 나는 아마 소리가 얼마나 무능한 충분히 알고 있어요 : 이것은 내가 지금까지 내가 다시 원이 여기에 while 루프를 발생하는 방법을 이해하지 않은 것입니다 그래서 미리 사과드립니다.

+0

scanf의 반환 값도 테스트하십시오. 정의되지 않은 값과 비교할 수도 있습니다. – PSkocik

답변

1
  • continue;는 루프 본문의 나머지를 건너 뛰고 루프
  • break; 루프 밖으로 뛰어 그냥 루프 본문 후 것을 유지합니다.
    int secretnumber; 
    int guesses; 
    
    while (1) { 
        printf("Player 1: Type a number between 0 and 99 and press return:\n"); 
        scanf(" %d",&secretnumber); 
    
        if (secretnumber > 99 || secretnumber < 0) { 
        printf("Secret number cannot be greater than 99 or below 0.\n"); 
        continue; 
        } 
    break; 
    } 
    
    printf("Type the number of guesses that player 2 gets and press return: \n"); 
    scanf(" %d",&guesses); 
    


은 BTW : 당신은 또한 당신이 scanf()에서 얻을 반환 값을 테스트해야합니다, 그것은 성공 과제의 수, 또는 -1 EOF를 위해.

그리고 위의 루프를 단순화 할 수 있습니다.


+0

아무것도 해치울 수는 없지만'scanf()'형식 문자열의 앞 부분 공백은'% d '에는 필요 없습니다. –