都选c吉他教学:所有if语句都执行c++(c++ if statements)

我正在制作一个程序,让用户插入一个等级,该程序将根据该等级显示一条消息。

由于某种原因,if 语句都被执行,我不知道为什么会发生。

这是我的代码:

#include <iostream>
#include <random>
using namespace std;
int main()
{
 string ques;
cout << "Hello would you like to insert a letter grade or a number grade?\n";
cin >> ques;
    if (ques=="letter")
    {
        char grade;
        cout <<"Enter your grade: ";
        cin >> grade;
        switch (grade)
        {
            case 'F' :
                cout << "You should start revising!"<<endl;
                break;
            case 'D':
                cout <<"You can do better!"<<endl;
                break;
            case 'C':
                cout<<"Improvement is possible!"<<endl;
                break;
            case 'B':
                cout <<"You`re getting there , keep it up!"<<endl;
                break;
            case 'A':
                cout <<"Congratulations! See?? Your hard work payed off!"<<endl;
                break;
        }
    return 0;
    }
    else
    {
        int nrGrade;
        cout <<"Enter your grade: ";
        cin >> nrGrade;
        if (nrGrade >=0 && nrGrade <= 59)
        {
            cout <<"Your grade is an F. You should start revising!"<<endl;
        }
        else (nrGrade >= 60 && nrGrade <= 69);
        {
        cout <<"Your grade is a D. I`m sure you can do better!"<<endl;
        }
        if (nrGrade >= 70 && nrGrade <=79)
        {
        cout <<"Your grade is a C. I`m sure you can improve!"<<endl;
        }
        else (nrGrade >= 80 && nrGrade <=89);
        {
        cout <<"Your grade is a B. You`re getting there , keep it up!"<<endl;
        }
        if (nrGrade >= 90 && nrGrade <= 100)
        {
            cout <<"Your grade is an A. Congratulations for your grade! Keep it up!"<<endl;
        }
        return 0;
    }
}

我正在使用 codeblocks,因为我在 visual studio 中有一些问题。任何人都知道为什么会发生这种情况?

3
if (nrGrade >=0 && nrGrade <= 59)
{
    cout <<"Your grade is an F. You should start revising!"<<endl;
}
else (nrGrade >= 60 && nrGrade <= 69);
{
    cout <<"Your grade is a D. I`m sure you can do better!"<<endl;
}

这里的部分(nrGrade >= 60 && nrGrade <= 69);被认为是 else 语句的指令,因为尾随的;,并且因为else不接受条件作为参数。记住if-statement的语法是:

if( condition )
    statement-true
else
    statement-false

当你试图写:

if( condition1 )
    statement-true
else( condition2 );
    statement-false

然后执行以下带有cout的块,因为它与您的 if / else 无关。

事实上,你的代码相当于:

if (nrGrade >=0 && nrGrade <= 59)
{
    cout <<"Your grade is an F. You should start revising!"<<endl;
}
else
{
    nrGrade >= 60 && nrGrade <= 69;
}
cout <<"Your grade is a D. I`m sure you can do better!"<<endl;

我认为你想要的逻辑更多:

if (nrGrade >=0 && nrGrade <= 59)
{
    cout <<"Your grade is an F. You should start revising!"<<endl;
}
else
{
    if (nrGrade >= 60 && nrGrade <= 69)
    {
        cout <<"Your grade is a D. I`m sure you can do better!"<<endl;
    }
}

可以这样写:

if (nrGrade >=0 && nrGrade <= 59)
{
    cout <<"Your grade is an F. You should start revising!"<<endl;
}
else if (nrGrade >= 60 && nrGrade <= 69)
{
    cout <<"Your grade is a D. I`m sure you can do better!"<<endl;
}

这里第二个if用作else的语句,形成伪关键字else if,语法如下:

if( condition1 )
    statement1
else if( condition2 )
    statement2
else
    default-statement

顺便说一句,当 if 和 else 块以相同的指令结束时,你可能想要提取它。

int main()
{
    // ...
    if (ques=="letter")
    {
        // ...
        return 0;
    }
    else
    {
        // ...
        return 0;
    }
}

应该是:

int main()
{
    // ...
    if (ques=="letter")
    {
        // ...
    }
    else
    {
        // ...
    }
    return 0;
}
0

错误的 if-else 实现。

应该是

if(condition1) {
    //do something
}
else if (condition2) {
    //do something else
}
else
{
    //do other stuff
}

例如:

if (nrGrade >=0 && nrGrade < 60)
{...
}
else if (nrGrade >= 60 && nrGrade < 70)
{...
}
else if (nrGrade >= 70 && nrGrade < 80)
{...
}
else if (nrGrade >= 80 && nrGrade < 90)
{...
}
else if (nrGrade >= 90 && nrGrade <= 100)
{...
}
else
{
cout << "ERROR"
}

否则不需要输入,所以你正在写的比较,后面跟着一个 ';',被认为是一个指令。

最好的

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(408)
C本多久可以增驾b本:我可以用“三驾马车-三文本”创建 3D文本吗
上一篇
学习编程教程:Q学习教程混淆(how to confuse machine learning)
下一篇

相关推荐

  • Cod16要钱吗:使用意图显示地图需要钱吗 (intent app cost)

    关于Cod16要钱吗的问题,在intent app cost中经常遇到,对不起,如果问题是如此基本,我是新来的 android 和编程。我要做一个应用程序,在这个应用程序,我需要显示位置,甚至方向在地图上很多时间。这是非常有可能的,有兴趣的用户看到地图超过 20 倍,在一次午餐的应用程序。…

    2022-11-23 08:47:37
    0 11 74
  • Cd4细胞:细胞() 粘贴VS细胞 pastesspecial

    关于Cd4细胞的问题,在excel vba cells paste中经常遇到,下面的代码是如何工作的:…

    2022-11-23 08:39:41
    0 98 46
  • Vc6编译器:需要适用于VC6的平台SDK(moodle studio xp)

    关于Vc6编译器的问题,在moodle studio xp中经常遇到,有谁知道我可以在哪里下载最后一个平台 SDK 与 VC6 工作?我可以通过谷歌搜索找到的链接似乎都死了。…

    2022-11-23 08:26:27
    0 59 18
  • cv树洞柒夜事件CV树洞中的秘密与惊奇

    cv树洞柒夜事件是一个有趣的计算机视觉活动,它提供了一种新的方式来利用计算机视觉技术来探索和发现景观。它始于2020年7月,由一群热爱计算机视觉的研究者和开发者发起,他们希望通过使用机器学习技术来探索景观中的精彩之处。cv树洞柒夜事件的目标是使用机器学习技术来探索景观中的精彩之处,并利用这些发现来改善景观设计。参与者需要使用机器学习技术来探索景观,并利用这些发现来改善景观设计。参与者可以使用Python,OpenCV,TensorFlow等技术来完成任务,并将其发布在GitHub上。…

    2023-01-09 12:42:42
    0 10 55
  • cvt变速箱异响:排查CVT变速箱异响的方法

    cvt变速箱异响是指变速箱在运行时发出的异常噪音,这种异响可能是由于变速箱内部零件磨损、油质不佳或润滑不良等原因引起的。代码如下:…

    2023-02-13 07:48:44
    0 52 19
  • cheers for还是to:Cheers to a Bright Future!

    示例示例Cheers for和to都可以用来表达祝福或者庆祝的意思。Cheers for:表示对某人或某事的支持,是一种赞扬的表达方式。…

    2023-02-27 02:56:18
    0 86 83
  • css初始化样式:This is a Title

    示例示例CSS初始化样式是指在各浏览器中重置默认的样式,以便于在所有浏览器中保持一致的显示效果。下面是一个常用的CSS初始化样式代码:…

    2023-01-12 02:04:17
    0 93 58
  • for循环continue:How to Use the continue Statement in a for Loop

    示例示例for循环是让程序跳过当前循环,继续下一次循环。代码示例:…

    2023-02-26 12:04:08
    0 22 14

发表评论

登录 后才能评论

评论列表(50条)