while循环不以哨兵值终止

时间:2018-10-09 20:56:05

标签: c++

我是C ++的新编码器,最近我正在学习它,因此我可能缺少基本要素和理解。我正在创建一个c ++文件,该文件将考虑各种信息,直到输入-1 sentinel值,然后对信息进行汇总。在学生编号中输入-1时,while循环不会终止。我可以从代码中获得一些建议和想法吗?我想念什么吗?我是新来的,所以我一个月前才开始提出批评。我认为我的while循环可能太大,如果我放括号或采取其他方法解决问题,谢谢

return fib(i-1) + fib(i-2) ;

1 个答案:

答案 0 :(得分:1)

您应该在读取哨兵值后立即添加支票,而不是在处理之后。

while ( true )
{
   cout<<"Enter student number:"<<endl;
   cin>> studentnumber;
   if ( studentnumber == -1 )
   {
      break;
   }

   // Use studentnumber
}

您可以通过使用辅助函数来读取输入来将支票置于while的条件中。

int readStudentNumber()
{
   int studentnumber;
   cout<<"Enter student number:"<<endl;
   cin>> studentnumber;
   return studentnumber;
}


while ( (studentnumber = readStudentNumber()) != -1 )
{

   // Use studentnumber
}