遇到while循环问题

时间:2015-03-11 23:52:41

标签: c++ c

我不明白为什么我运行这个小程序时屏幕上没有显示任何内容? 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;
}

2 个答案:

答案 0 :(得分:5)

如果

strcmp的参数相同,则返回0,因此在第一次迭代时,while循环检查while(0)。 0在布尔检查中等效于false,因此跳过while循环。试试while(!strcmp(TryAgain, "y"))

答案 1 :(得分:0)

我更喜欢将其更改为do-while

do {
  printf("\nWould you like to try another word? [y/n]\n");
  scanf("%s", TryAgain);
} while (TryAgain=="y" || TryAgain=="Y");

TryAgain必须是布尔值。 见你