我有一个while循环,我想跳过整个循环,而不必再次在括号中运行条件,因为像你现在这样,向量的大小比其单元格数大一个。我的意思是:
[ Cell 0 ][ Cell 1 ][ Cell 2] --> Size = 3
因此,我必须跳过整个循环以防止发生错误。我需要编写一些使程序从A点移到B点而无需运行“ while()”我的循环的东西:
size = 0;
while ((usernamelog[size] != usrlog || passwordlog[size] != passlog) && size < usernamelog.size())//Checking Username And Password
{
if (x == 2)//Login Unsuccessfull
cout << "Username or Password is Incorrect. Please try again." << endl;
cout << "Enter Your Username: ";
cin >> usrlog;
cout << "Enter Your Password: ";
cin >> passlog;
x = 2;
size++;
if (usernamelog.size() == size)
//Point A
}
//Point B
例如,当usernamelog.size为2且大小为2时,从A跳到B
答案 0 :(得分:2)
您正在寻找break
:
在此语句之后,控制权会在封闭循环或开关之后立即转移到该语句。与任何块出口一样,在执行封闭循环之后的第一行之前,按相反的构造顺序破坏在封闭复合语句或循环/开关条件下声明的所有自动存储对象。
示例:
while (true) {
std::cout << "this loop runs only once";
break;
}
当您有嵌套循环时,有时会出现“问题”,因此即使在当前与您的代码无关的情况下,我也会在此处添加它。请注意,break
仅跳出最内部的循环。一旦有了更多的循环,您将需要多个break
。例如,它将一直运行到无穷大:
while (true) {
while (true) {
break;
}
}
一个简单的解决方案是将循环放入函数内并移至return
:
void foo() {
while (true) {
while (true) {
std::cout << "this will be printed only once";
return;
}
}
}
请注意,您也可以在单个循环中执行此操作,通常这是更简洁的方法。
PS:如果您确实知道迭代次数,那么使用for循环来代替是更容易实现的。还应考虑解决您的状况,以免您从体内跳出循环。