如何在不返回 C++ 值的情况下退出 int 函数?

How can exit from a int function without returning value in C++?

本文关键字:退出 情况下 int 函数 返回 C++      更新时间:2023-10-16

我昨天试图用 c++ 解决一个问题。这个问题是一个著名的问题,叫做"嘶嘶声"。它将采用一个数字作为输入。对于 3 的每个倍数,打印"嘶嘶声"。对于 5 的每个倍数,打印"Buzz"。对于 3 和 5 的倍数,请打印"FizzBuzz"而不是数字。如果一个数字不是 3、5 或两者的倍数,它将打印该数字。

一个例子:如果我给 5 作为输入,它将显示如下输出:12Fizz4Buzz.但问题是这个法官有一个模板代码,如下所示:

#include<bits/stdc++.h>
using namespace std;
int FizzbuzzFunc(int num)
{
return 0;
}
int main()
{
int number;
cin>>number;
cout<<FizzbuzzFunc(number);
return 0;
}

每当我尝试通过将我的代码放入"FizzbuzzFunc"来解决它时,它都会在输出的末尾打印一个额外的 0。如果我的代码看起来像这样,则举个例子:

#include<bits/stdc++.h>
using namespace std;
int FizzbuzzFunc(int num)
{
for(int i = 1; i <= num; i++)
{
if (i % 3 == 0 && i % 5 == 0)
{
cout<<"FizzBuzz";
}
else if(i % 3 == 0)
{
cout<<"Fizz";
}
else if(i % 5 == 0)
{
cout<<"Buzz";
}
else
{
cout<<i;
}
}
return 0;
}
int main()
{
int number;
cin>>number;
cout<<FizzbuzzFunc(number);
return 0;
}

并将输入为 5,则输出将如下所示:12Fizz4Buzz0. 如何从输出中删除额外的 0?

如果函数声明为返回值,则必须返回值。

从函数末尾流出等效于没有的返回 价值;这会导致值返回中出现未定义的行为 功能。

但是,您的代码打印额外0的原因是您告诉它:

cout<<FizzbuzzFunc(number);

不要用cout,只调用函数。

FizzbuzzFunc(number);

此外,如果函数不需要返回值,则可以将其返回类型设置为void

void FizzbuzzFunc(int num)

你可以从中return;

而不是cout<< FizzbuzzFunc(number);只是做FizzbuzzFun(number);。这样,您就不会打印函数返回的值。如果不打算使用函数返回的值,则应使用void返回类型声明该函数。

使FizzbuzzFunc()函数返回如下所示的void返回类型:void FizzbuzzFunc(int num)。此版本的FizzbuzzFunc()不返回任何值,因此您不必从函数内部执行return 0;