我的 C++ 不是什么?当我尝试使用递归时程序可以工作吗?

发布于 2024-11-11 16:36:41 字数 1566 浏览 3 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

黄昏下泛黄的笔记 2024-11-18 16:36:42

continue 是 C++ 中的关键字,因此不能拥有具有该名称的变量。

continue is a keyword in C++, so you cannot have a variable with that name.

ゝ偶尔ゞ 2024-11-18 16:36:42

您应该将代码放在 while 循环中。

int main()
{
    //  declaration of variables here

    do
    {
        // code here

        cout << "Type 'y' if you would like to continue and any other combination to quit.";
        cin >> doYouWantToContinue; // change the keyword!
    }
    while (doYouWantToContinue == 'y');
}

You should put your code in a a while loop.

int main()
{
    //  declaration of variables here

    do
    {
        // code here

        cout << "Type 'y' if you would like to continue and any other combination to quit.";
        cin >> doYouWantToContinue; // change the keyword!
    }
    while (doYouWantToContinue == 'y');
}
逆蝶 2024-11-18 16:36:42

除了continue是保留字之外,在C++中调用main也是非法的。来自 '03 标准,§3.6.1/3:

函数main不得在程序中使用。 main 的链接是实现定义的。将 main 声明为 inlinestatic 的程序是格式错误的。名称 main 不以其他方式保留。 [示例:成员函数、类和枚举可以称为 main,其他命名空间中的实体也可以。 ]

In addition to continue being a reserved word, it is illegal to call main in C++. From the '03 standard, §3.6.1/3:

The function main shall not be used within a program. The linkage of main is implementation-defined. A program that declares main to be inline or static is ill-formed. The name main is not otherwise reserved. [Example: member functions, classes, and enumerations can be called main, as can entities in other namespaces. ]

一片旧的回忆 2024-11-18 16:36:42

continue 用于短路循环,例如:

for (i = 0; i < 10; ++i)
{
    if (f(i))
    {
        continue; // skip the rest of the loop
    }

    do_something_interesting_with(i);
}

continue is used to short-circuit loops, e.g.:

for (i = 0; i < 10; ++i)
{
    if (f(i))
    {
        continue; // skip the rest of the loop
    }

    do_something_interesting_with(i);
}
月亮邮递员 2024-11-18 16:36:42

continue 是一个 C++ 关键字,请使用不同的名称

而不是

char continue;

try

char cont;

continue is a c++ keyword, use a different name for it

instead of

char continue;

try

char cont;
情深已缘浅 2024-11-18 16:36:42

我的 2 美分:扔掉所有这些东西,并重写它,记住

  1. goto 和标签是不好的;
  2. 它们应该用循环替换(在您的情况下可能是 do...while );
  3. 使用保留/已使用的名称声明变量/标签是不好的(并且在大多数情况下这是非法的);
  4. main 中递归是不好的(实际上,根据标准这是非法的);
  5. 良好的缩进不是可选的(即使编译器不介意)。
  6. #include可选的。

也许将用户输入/验证逻辑移到单独的函数中以避免代码重复。

My 2¢: throw away all this stuff, and rewrite it keeping in mind that

  1. gotos and labels are bad;
  2. they should be replaced with loops (probably do...while in your case);
  3. declaring variables/labels with reserved/already used names is bad (and in most cases it's illegal);
  4. recursing in main is bad (actually, it's illegal according to the standard);
  5. good indentation is not optional (even if the compiler won't mind).
  6. #includes are not optional.

And maybe move the user input/validation logic in a separate function to avoid code duplication.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文