C ++循环中if语句后返回函数的作用是什么?-Prime Test

时间:2015-03-09 02:22:11

标签: c++

#include <iostream>
#include <cmath>

using std::cin;
using std::cout;
using std::endl;

int prime(int n)
{
    int i;
    if (n == 1) return 0;  // zero- not prime
    if (n == 2) return 1;  // one- prime
    for (i = 2; i <= ceil(sqrt(n)); i++) {
        if (n % i == 0) return 0; // remainder is zero
    }
    return 1;
}

int main()
{
    unsigned long n;
    while (cin >> n) {
        cout << prime(n) << endl;
    }
}

我知道0表示不是素数,1表示素数。有人可以解释一下所有返回函数是如何实现的?

为什么不将cout << "0"用于非素数而cout << "1"用于素数?

1 个答案:

答案 0 :(得分:1)

是的,您可以直接从该功能cout。那是有效的。

但是当你创建一个数学函数时,return的值更常规,所以调用它的代码可以随心所欲。它可以cout,或将其保存到变量,或执行其他计算。

如果函数直接cout结果,那么你就会陷入困境:它只能对结果做一件事。这是限制性的,没有任何好处。