2015-12-03 32 views
0
#include <iostream> 

using namespace std ; 
int main() { 
//Variables 
char country; 
int taxed ; 
float pay ; 
char uk_tax = 'a'; //40% 
char us_tax ='b';//mulitple by number devide answer by 100 

//Inputs 
cout << "Enter your total earnings: "; 
cin >> pay ; 
cout << "Are you within the UK or USA?\n "; 
cout << "a) For Uk b) For USA \n "; 
cin >> country ; 


switch(country) 
{ 
case 1: 
     //chosen if input is a 
     if (country == uk_tax) 
     taxed = 40 * pay/100; 
     cout<< "Here are your earnings after Tax £" << taxed ; 
     break; 

    case 2: 
     //chosen if input is b 
     if (country == us_tax) 
     taxed = 28 * pay/100 ; 
     cout << "Here are your earning after Tax £" << taxed ; 
     break; 
      } return 0 } 

你好我只是想知道是否有人可以帮助看到我与这段代码有问题。代码不执行开关语句。代码它自己它只是两个国家(美国,英国)的税计算器用户通过输入'a'或'b'选择国家,但我似乎无法得到它执行switch语句后执行switch语句?

+7

也许是因为'country'不是1或2? – immibis

+1

案件是“a”和“b”不是“1”和“2”。 – NathanOliver

+2

@NathanOliver:实际上是''a''和''b''。 –

回答

3

如果您的变量country不是1或2,那么switch将不会执行任何操作。 此外,您的情况可能会更好,如果他们是:

case 'a':

case 'b': 
1

您的意见指出要对投入'a''b'切换,但你没有写任何代码来做到这一点。您的代码会打开country是ASCII代码12的输入,您将很难在键盘上输入。

这样写:

case 'a': 

这:

case 'b': 

代替。

1

countrychar。您可能需要切换'1''2''a''b'

1

您要求用户输入ab为国家,您的交换机应该是case 'a':case 'b':匹配。

0

由于countrychar类型,因此交换机会尝试匹配每种情况。在这种情况下,您想要使用case 'a'case 'b',而不是case 1case 2