简单嵌套"If else"语句

simple nested "If else" statement

本文关键字:语句 else If 简单 嵌套      更新时间:2023-10-16

编译时没有错误...但我的输出一无所获。我知道这是一个非常菜鸟的编码尝试......我主要从事数字工作...字符串的东西有点让我感到困惑。

#include <iostream>
#include <string>
using namespace std;
char chr;
int main()
{
    string name;
    string artist;
    string Taylor;
    string Alan;
    string general;
    string box;
    string seating;
    cout << "Enter your name followed by the return key" << endl;
    cin >> name;
    cout << endl;
    cout << "Enter Taylor for Taylor Swift tickets or Alan for Alan Jacskon seats, followed" << endl << "by the enter key" << endl << endl;
    cout << "Enter box for box seating or general for general seating, followed by the enter key" << endl << endl;
    cin >> artist;
    cin >> seating;
    if ( artist + seating == Taylor + general )
        cout <<  name << ", Your ticket will cost $60" << endl;
    else if ( artist + seating == Taylor + box )
        cout <<  name << ", Your ticket will cost $100" << endl;
    else if ( artist + seating == Alan + box )
        cout <<  name << ", Your ticket will cost $75" << endl;
    else if ( artist + seating == Alan + general )
        cout <<  name << ", Your ticket will cost $50" << endl;
    cin >> chr;
    return 0;
}

TaylorAlangeneralbox在你的逻辑文字值中,而不是变量......你的代码应该变成

string Taylor = "Taylor";
string Alan = "Alan";
string general = "general";
string box = "box";

不幸的是,C++你不能只写

if ( artist + seating == "Taylor" + "general" )

由于原因太复杂而无法在此处解释,您可以改为删除这些值的变量并使用

if ( artist + seating == "Taylorgeneral" )

顺便说一句:我不确定C++是否是学习编程的好选择。在我看来,更适合这项工作的是 Python(或像 6502 这样的简单 CPU 的汇编程序编码,但这是另一种完全不同的方法)。

字符串Taylor, Alan, general, box永远不会初始化。比较它们是没有意义的。您可能想要的是:

string Taylor = "Taylor";
string Alan = "Alan";
string general = "general";
string box = "box";

当我将您的 if 语句更改为这种格式时,它们起作用了。

if ( ( 艺术家 == "

泰勒") &&(座位 == "一般"))

  cout <<  name << ", Your ticket will cost $60" << endl;

你还没有初始化字符串泰勒;字符串艾伦;字符串一般;字符串框;所以它们都是='\0',它不匹配任何情况,所以你没有得到输出。更重要的是,当你使用CIN进行输入时,它会忽略'',',你也可以使用cin.getline(字符串A)作为输入