C++ break语句不会退出循环
使用以下代码,由于某种原因,我无法退出提供的for循环:C++ break语句不会退出循环,c++,loops,break,C++,Loops,Break,使用以下代码,由于某种原因,我无法退出提供的for循环: for(int i = 0; i < sizeof(boolForCharIsDigi)/sizeof(boolForCharIsDigi[0]); i++){ if(boolForCharIsDigi[i] == false){ hasPassed = false; std::cin >> turnsDefi
for(int i = 0; i < sizeof(boolForCharIsDigi)/sizeof(boolForCharIsDigi[0]); i++){
if(boolForCharIsDigi[i] == false){
hasPassed = false;
std::cin >> turnsDefined;
std::cout << "You may only use numbers to define the amount of turns. No decimals either." << std::endl << std::endl;
break;
}else if(boolForCharIsDigi[i] == true){
hasPassed = true;
}
}
Vars:boolForCharIsDigi是包含假值和真值的bool数组。
TurnsDefine是一个简单的std::字符串。hasPassed是另一个正常布尔值,为真/假
正是我想要做的:使用break语句,我想要退出for循环。非常简单。我做错了什么:我的break语句只退出了一个嵌套循环。外部循环只是重新启动了内部循环。因此,我所做的是添加一个bool,让外部循环检查内部循环是否将其设置为true,以便退出。sizeofboolForCharIsDigi和sizeofboolForCharIsDigi[0]的值是多少?使用所有警告和调试信息编译g++-Wall-Wextra-g。然后使用调试器gdb!对for循环使用hasPassed和当前条件。将其初始化为true。您不需要中断。@gldraphael Computed,它返回用户输入字符数组的值长度。它基本上为char数组中的每个元素创建一个bool。@代码,因为在我看来它工作得很好: