c++ - 有没有更简单的方法来写这个?

标签 c++ if-statement

您好,我正在学习 C++ 的基础知识,并且正在做作业。我在问是否有更简单的方法来编写这部分。

if ( 100 >= projectgrade && 0<= projectgrade ) {}
else 
{
    cout<<endl<<"invalid data, please retry again.";
    cin.ignore();
    cin.get();
    return EXIT_SUCCESS;
}
if ( 100 >= midtermgrade && 0<= midtermgrade ) {}
else 
{
    cout<<endl<<"invalid data, please retry again.";
    cin.ignore();
    cin.get();
    return EXIT_SUCCESS;
}
if ( 100 >= finalexamgrade && 0<= finalexamgrade ) {}
else 
{
    cout<<endl<<"invalid data, please retry again.";
    cin.ignore();
    cin.get();
    return EXIT_SUCCESS;
}

是否可以将所有这些限制都写在 if 的一个括号中?我尝试了很多次,但我无法弄清楚。谢谢你的帮助!

最佳答案

好吧,如果你检查一下你的逻辑,那就是是否有任何成绩小于 0 或大于 100,所以像这样 -

if ( projectgrade < 0 || projectgrade > 100 || 
     midtermgrade < 0 || midtermgrade > 100 || 
     finalexamgrade < 0 || finalexamgrade > 100 
   ) {
  cout<<endl<<"invalid data, please retry again.";
  cin.ignore();
  cin.get();
  return EXIT_SUCCESS;
}

编辑 我们总是可以添加一个 #define 就像

#define range(x) x < 0 || x > 100

那么如果可以缩短为

if (range(projectgrade) || range(midtermgrade) || range(finalexamgrade))

关于c++ - 有没有更简单的方法来写这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25800011/

相关文章:

c++ - FreeGlut OpenGL 上下文版本

c++ - 这个for循环的时间复杂度是多少(和 `n`有关)?

python - 结合 if 条件与 isnan 语句

python - 检查特定元素列表的更好方法 - python

bash if 语句,版本是否低于要求?

c++ - rapidxml:如何遍历节点?遗漏了最后一个 sibling

c++ - 用C++获取VSXu艺人的VU

c++ - std::shuffle 不能用 std::list 编译

javascript - if 语句来自跨度 "1 left"?

javascript - 带大括号的 If/Else 语句