做什么时候或同时?

时间:2012-10-12 23:53:39

标签: c loops while-loop do-while

我试图让我的程序仅在用户输入Y或y时运行,但它只运行一次,即使它不是Y或y。输入将是Y,y,N或n

printf("Welcome to the Jumble Puzzle Solver!\n\n");
printf("Would you like to enter a jumbled word?\n");
scanf("%s", &answer);


    do{

    printf("What word would you like scored?\n");
    scanf("%s", &letters);

    strcpy(changeletters, letters);

    recursivepermute(letters, changeletters, checkword, k, dictionary ,max, min);

    printf("Would you like to enter a jumbled word?\n");
    scanf("%s", &answer);

    }while (answer == 'Y' || answer == 'y');

2 个答案:

答案 0 :(得分:1)

do { } while()会导致身体始终至少执行一次 。如果您想先检查条件,只需使用while:

// If answer is:
// char answer;

scanf("%c", &answer);
while (answer == 'Y' || answer == 'y')
{
     printf("What word would you like scored?\n");
    // ...

    scanf("%c", &answer);
}

如果scanf("%c"answer,您还需要使用char%s是扫描一串字符(即:char[20]),需要使用strcmp或类似的方法进行不同的检查。

答案 1 :(得分:0)

如果您希望用户一次玩游戏,然后再被要求再次播放,则使用do-while循环更合适。但是如果你想给用户提供根本不玩游戏的选项那么使用while循环