错误后如何停止循环

时间:2012-12-03 19:08:07

标签: c++

我只想做那个循环中的一件事...... - IF或ELSE ..(当你知道它的真假时...)如果我有两个打字的学生,他们的信息和我的第一组中的第一个学生没有优秀的成绩,第二个学生的成绩优秀,我的课程打印: 1)首先循环for:it; s false,因此它生成else 2)第二个循环开启:它是真的所以它使if

我有: 无信息 优秀的学生......

我想只看到优秀成绩的学生(如果我使用BREAK;我将停止FOR周期)这是我的代码:

int gr;
cout<<"Enter group that you want to check: ";cin>>gr;
cout<<"Students with excellent grade in group "<<gr<<":\n";
    for(i=0;i<n;i++)
        {
            if(m[i][2]==gr && m[i][3]>=5.500)
            {
                for(j=0;j<4;j++)
                    cout<<setprecision(8)<<m[i][j]<<"\t";
            }
            else
                    cout<<"No students with excellent grade in this group"<<endl;

        }

我在这里遇到同样的问题。我可以使用“bool”类型以及该代码中的代码(代码基于struct):

int x;
bool no_info=false;
p: cout<<"| What personal id you want to search for: ";cin>>x;

for(int i=0;i<n;i++)
{
  if(pov[i].id==x)
  {
    no_info=true;
    cout<<pov[i].id<<endl;
    cout<<pov[i].name<<endl;
    cout<<pov[i].lastname<<endl;
    cout<<pov[i].department<<endl;
    cout<<pov[i].salary<<endl;
  }
}
  if(no_info){
   cout<<"No information"<<endl;}
 goto p;

EDITED !!!

1 个答案:

答案 0 :(得分:2)

很难理解你想要实现的目标。但我认为你想要的是:

int gr;
bool no_excellents = true;
cout<<"Enter group that you want to check: ";cin>>gr;
cout<<"Students with excellent grade in group "<<gr<<":\n";
for(i=0;i<n;i++)
{
    if(m[i][2]==gr && m[i][3]>=5.500)
    {
       no_excellents = false;
       for(j=0;j<4;j++)
           cout<<setprecision(8)<<m[i][j]<<"\t";
    }
}

if(no_excellents)
{
    cout<<"No students with excellent grade in this group"<<endl;
}

这不会停止for循环,只打印那些成绩优异的学生。如果没有人有优秀成绩,该计划会告诉你。