我的简单switch语句在C ++中不起作用

时间:2014-09-12 19:40:01

标签: c++ switch-statement case break

我正在尝试编写一个非常简单的C ++ switch语句,但是尽管从Absolute C ++和其他在线示例中读取了示例代码,但在我想要的时候仍然没有输出任何内容。为什么这段代码不起作用? (FIXED)

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
#include <Windows.h>
#include <stdlib.h>
#include <time.h> 
#include <random>

using namespace std;


int main()
{  
int HouseValue;
double AnnualInsuranceCost = 0;
cout << "Enter your total house value estimate: (rounded to nearest 50,000!)\n\n\n";
cin >> HouseValue;

switch (HouseValue)
{
    case 50000:
        AnnualInsuranceCost = 2000;
        break;

    case 100000:
        AnnualInsuranceCost = 3000;
        break;

    case 150000:
        AnnualInsuranceCost = 3500;
        break;

    case 200000:
        AnnualInsuranceCost = 3750; 
        break;

    case 250000:
        AnnualInsuranceCost = 3875;
        break;

}


cout << "\n\n\n\t\t    Your annual insurance cost will be: " << AnnualInsuranceCost << "\n\n\n\t\t\t";



return 0;

}

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

case 5:
        cout << "250000";
        AnnualInsuranceCost = 3875;
        break;
}

cout << "Your annual insurance cost will be: " << AnnualInsuranceCost;
}

否则cout将成为case 5的一部分(虽然从未到达。

同时更改

AnnualInsuranceCost == 2,000;

AnnualInsuranceCost = 2000;

同样从您的号码中删除所有comma,==用于比较,= =用于分配。

答案 1 :(得分:0)

您期望发生什么?你提示输入一个美元数字,例如100,000,并且具有实际匹配的 NO case值。您也没有default个案例,因此您甚至无法告诉用户没有任何匹配项。 switch/case只是编写扩展if else if else else if else链的一种奇特方式。

你需要更像

的东西
switch(HouseValue)
   case 0:  ...
   case 50000: ...
   case 100000: ...
   ...
   default: ... if nothing else matches.