【发布时间】:2014-10-29 06:45:32
【问题描述】:
使用以下代码,我由于某种原因无法退出提供的 for 循环:
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 是包含 false 和 true 值的 bool 数组。
turnsDefined 是一个简单的 std::string。 hasPassed 是另一个正常的布尔值,真/假。
正是我想要做的: 使用 break 语句,我想退出 for 循环。 (很简单)。
【问题讨论】:
-
sizeof(boolForCharIsDigi)和sizeof(boolForCharIsDigi[0])的值是多少?? -
编译时包含所有警告和调试信息 (
g++ -Wall -Wextra -g)。然后使用调试器 (gdb)! -
使用 hasPassed 和 for 循环的当前条件。将其初始化为真。你不需要休息。
-
@gldraphael 计算,它返回用户输入字符数组的值(长度)。它基本上为 char 数组中的每个元素创建一个 bool。
-
@Code 因为在我看来它工作得很好:ideone.com/281Jay