条件返回到函数开始处
Conditional return to beginning of function
如果结果不符合标准,我试图返回或重复该函数。我尝试了各种方法,例如do while
语句、设置BOOL
标志等,但都没有成功。在满足条件之前重新启动函数的最佳方法是什么?
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
int main() {
std:int nine;
std::srand(std::time(NULL));
std::cout << nine << (rand() % 10);
std::cout << 'n';
if (nine == 9) {
std::cout << 'nine';
} else {
main();
}
}
在c++中不能递归调用main。此外,您的代码还包含一些其他错误。程序可以如下所示:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
std::srand( ( unsigned )std::time( NULL) );
int nine;
do
{
nine = std::rand() % 10;
} while ( nine != 9 );
std::cout << "nine" << std::endl;
}
您还可以添加一个输出语句
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
std::srand( ( unsigned )std::time( NULL) );
int nine;
do
{
nine = std::rand() % 10;
std::cout << nine << std::endl;
} while ( nine != 9 );
std::cout << "nine" << std::endl;
}
while循环应该可以正常工作:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
int main() {
int nine = 0;
srand(std::time(NULL));
while (nine != 9)
{
nine = (rand() % 10);
std::cout << nine << std::endl;
if (nine == 9) {
std::cout << 'nine';
}
}
}
我认为你的问题是在nine
,你没有分配它
nine = rand()%10;
和基本循环应该是好的
while ( nine != 9){
nine = rand()%10;
}
您可以这样做:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
int main() {
std::srand(std::time(NULL));
do {
std:int nine;
std::cout << nine << (rand() % 10);
std::cout << 'n';
if(nine == 9) {
std::cout << 'nine';
break;
}
} while(true);
}
注意不要在代码中更改nine
,循环将永远持续下去。
由于std:int
(缺少冒号打字错误),这段特定的代码甚至无法编译。但是假设这个错别字被修复了,它也不会做任何事情,因为你从来没有给nine
赋值。
int nine = 0;
do {
nine = rand() % 10;
} while (nine != 9);
相关文章:
- 为什么 -mmacosx-version-min=10.10 不阻止使用标记为从 10.11 开始的函数?
- 如何显示函数开始、结束行和函数体?
- 跳转到函数从某些代码部分开始
- 编写一个函数,在开始和结束处添加括号,使所有括号匹配并返回
- 如何将从第 2 个字符开始的字符串作为函数中的参数传递以进行递归,并约束数据 tiee 是函数中的字符串?
- 范围的递归函数(从范围 v3 开始)导致编译发散:为什么
- 如果绝对没有调用成员函数,是否允许使用不完整类型的向量?如果是这样,从什么时候开始
- 将数组作为函数参数传递,并在其上调用开始/结束方法
- 初始化函数中的静态变量,而不是在文件开始时
- C++ 指针上的开始/结束 (arr) - 调用 'begin(int**&)' 没有匹配函数
- 如何在c/c++中从不同的函数而不是main()开始执行程序
- 如何验证pthread函数是否开始执行
- 我正试图使用数组从头开始创建一个strtok函数
- 从另一个函数中获取char[]的好方法.用c/c++开始思考
- 如何让'read'函数从文件的开头开始?
- 如果文件在构造函数中不存在,则抛出异常,并在 main() 中创建对象时尝试/捕获它,如果好 - 开始使用该对象
- 无法使用非成员开始和结束函数写入基于范围
- 有没有办法让C++类在开始执行析构函数之前自动执行方法
- 在函数开始时测试并返回,而不是嵌套的 if
- 错误:调用"开始(常量无符号 int&)"没有匹配函数|