【问题标题】:How can I fix this simple do/while loop?如何修复这个简单的 do/while 循环?
【发布时间】:2019-09-20 23:13:30
【问题描述】:

我查看了多个具有相同问题的问题,但不幸的是,它们的循环存在不同类型的问题。

当用户输入的文本超过一个字符时,我希望代码输出“This is long enough”。

每次我输入内容时,都会再次提示我回答。

我是 c 新手,我不确定自己搞砸了什么。

int length;

do
{
    string text = get_string("INPUT:");
    length = strlen(text);
}

while(length >= 1);

printf("This is long enough.");

【问题讨论】:

  • 在有人用“get_string 是什么?string 是 C 或 C++ 的东西”之前,您可能应该让所有人知道您正在使用 cs50 标头和库(恕我直言,对于学习 C 的人来说,这两者都没有任何帮助,尤其是因为他们将 char * 隐藏在类型别名 string 中,而且从那里只会变得更糟)。相关 while(length >= 1); 对您意味着什么,特别是因为它与您打算继续循环与中断循环的条件有关?
  • 问题出在您没有显示的代码中。
  • 这是我目前所有的代码
  • C 没有string,也没有get_string()。如果这就是你得到的全部,它甚至不会编译。

标签: c loops while-loop cs50


【解决方案1】:

你的 while 条件是错误的。您的循环将一直运行,直到用户输入的文本少于一个字符(即没有文本)。请记住,只要条件为真,循环就会运行。而是这样做:

while(length <= 1);

只要你的字符串是一个字符或更少,它就会运行,当你有多个字符时停止。

【讨论】:

  • @iraza-n 看看How to debug small programs。对于任何学习编程的人来说,它都是必读的。它可以帮助您获得解决代码中问题的心态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多