[英]Having trouble with while loops
我不明白為什么當我運行這個小程序時屏幕上什么都沒顯示? while循環甚至開始了嗎?
#include <stdio.h>
#include <string.h>
int main()
{
char word[20];
char TryAgain[20] = "y";
int WordLength = 0;
while (strcmp(TryAgain, "y"))
{
printf("\t\t\t Word \n\n");
printf("What is your word, bird?\n");
scanf("%s", word);
getchar();
WordLength = strlen(word);
printf("Result: ");
for (int i = 0; i < WordLength; ++i)
{
printf("%c*", word[i]);
}
printf("\nWould you like to try another word? [y/n]\n");
scanf("%s", TryAgain);
}
getchar();
return 0;
}
如果strcmp
的參數相同,則返回0,因此在第一次迭代時,while循環將檢查while(0)
。 0等於布爾檢查中的false
,因此將跳過while循環。 試試while(!strcmp(TryAgain, "y"))
。
我更喜歡將其更改為“ do-while”
do {
printf("\nWould you like to try another word? [y/n]\n");
scanf("%s", TryAgain);
} while (TryAgain=="y" || TryAgain=="Y");
TryAgain必須為布爾值。 再見
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.