为啥这个循环不起作用?

Posted

技术标签:

【中文标题】为啥这个循环不起作用?【英文标题】:Why does this loop not work?为什么这个循环不起作用? 【发布时间】:2012-07-03 13:34:43 【问题描述】:

这是一个非常简单的程序。我在顶部定义了一个函数,在循环中我调用了函数print

但我收到以下错误:

prog.cpp:5: error: variable or field ‘print’ declared void
prog.cpp:5: error: ‘a’ was not declared in this scope
prog.cpp: In function ‘int main()’:
prog.cpp:11: error: ‘print’ was not declared in this scope

这里是:

#include <iostream>    
using namespace std;

void print( a ) 
    cout << a << endl;


int main() 
    for ( int i = 1; i <= 50; i++) 
        if ( i % 2 == 0 ) print( i );
    

    return 0;

【问题讨论】:

函数参数中“a”的类型? This good set of c++ tutorials 可以帮到你。 为什么有这么多反对票? OP 提供了一个最小的工作示例,并且错误消息是完整的。 @Gigi 我正在阅读它,它真的很棒。谢谢! 【参考方案1】:

定义print时忘记声明a的类型。

【讨论】:

【参考方案2】:

试试这个:

void print( int a ) 

【讨论】:

【参考方案3】:

C++ 没有动态类型。所以你需要手动指定“a”变量的类型或使用函数模板。

void print( int a ) 
    cout << a << endl;


template <typename T>
void print( T a ) 
    cout << a << endl;

【讨论】:

【参考方案4】:

改为:

void print( int a )  // notice the int
    cout << a << endl;

【讨论】:

【参考方案5】:
#include <iostream>

using namespace std;

void print( int a ) 
    cout << a << endl;


int main() 
    for ( int i = 1; i <= 50; i++) 
        if ( i % 2 == 0 ) print( i );
    

    return 0;

【讨论】:

以上是关于为啥这个循环不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SharpDevelop 上这个使用“for”循环的小 C# 程序不起作用?

为啥 ViewPager 无限循环不起作用?

如果我输入 return 关键字,为啥 JS for 循环不起作用? [复制]

为啥嵌套循环在 laravel 中不起作用

为啥我的主循环在 tkinter 中不起作用?

为啥我的 Linux bash 中这个简单的 FOR LOOP 不起作用?