简单嵌套“If else”语句

时间:2013-10-19 06:03:10

标签: c++

编译时没有错误......但是我的输出没有任何结果。我知道这是一个非常愚蠢的编码尝试...我大多数都在使用数字......字符串的东西让我感到困惑。

#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;
}

4 个答案:

答案 0 :(得分:2)

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

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

在C ++中,你不能只写

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

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

if ( artist + seating == "Taylorgeneral" )
BTW:我不确定C ++是否是学习编程的好选择。在我看来,更适合这项工作Python(或者用汇编程序编写6502之类的简单CPU,但这是另一种完全不同的方法)。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

  

if((artist ==“Taylor”)&amp;&amp;(seat ==“general”))

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

答案 3 :(得分:0)

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