C ++ #ID< 0> 100 ==需要提示/建议无效

时间:2014-02-10 21:33:28

标签: c++

作业:您还需要检查成绩用户是否在0到100之间输入了ID。如果没有,请打印错误消息并退出。不确定他的确切含义是什么导致用户可以自己退出,也可以意味着abort();?

所以我想知道是否有可能只用它发布“对不起但你输入的号码无效,请输入1到100之间的任何数字”

#include <iostream>
using namespace std;

int main(){
int grade;
cout << "What is your grade? ";
cin >> grade;

    if(grade>100){
        cout << "Sorry but the number you entered is invalid, please enter any number between 1 - 100";
    }
    else if(grade>=90){
        cout << "You have an A in the class" << endl;
    }
    if(grade<90){
        cout << "You have an B in the class" << endl;
    }
    else if(grade>=80){

    }
    if(grade<80){
        cout << "You have an C in the class" << endl;
    }
    else if(grade>=70){

    }
    return 0;
}

2 个答案:

答案 0 :(得分:0)

结合比较表达式:

if ((grade < 0) || (grade > 100))
{
  // Invalid grade
}
else
{
  // Process grade
}

答案 1 :(得分:0)

使用

if(grade>100){
    cout << "Invalid" << endl;
}
else if(grade>=90){
    cout << "You have an A in the class" << endl; 
}

你的问题是你只需加载一些if语句,其中任何一个都可以匹配。您需要在第一个之后为每个语句添加一个else语句,以确保它只匹配一个。

虽然<100> 失败点?如果&lt; 0怎么办?还是一封信?

使用return 0;

if(grade>100){
    cout << "Invalid" << endl;
    return 0;
}
if(grade>=90){
    cout << "You have an A in the class" << endl; 
    return 0;
}

If-Else-If就我而言总是更可取。

修改

if (grade > 100 || grade < 0)
{
    // error
}
else if (grade > 90)
{
}
else if (grade > 80)
{
}
else if (grade > 70)
{
}
else
{
     // failed
}

如果您将其视为连续的事件链。如果第一个不匹配,则检查下一个然后检查下一个,依此类推,直到失败为止。一旦找到匹配,则不会处理任何后续的其他语句,应用程序将退出。如果你以75为例。它将失败&gt; 90和&gt; 80然后通过&gt; 70,此时它将结束。