Я новичок в этом и работаю над своей первой программой if / else. У меня возникают проблемы с получением первого оператора if, который распознает мой ввод «r». Я пытался играть только с одним утверждением за раз, я был в состоянии ввести все примеры того, что учитель дал нам с желаемым результатом для дома и бизнеса. Однако, когда я полностью запускаю программу, у меня возникает проблема. Я выбираю R для жилых помещений, 0 для дополнительных подключений, 0 для каналов премиум-класса, и вместо выхода в размере 18,50 долларов США я получаю плату за бизнес в размере 75,00 долларов США. Я уверен, что это простая ошибка, но я не могу понять, что я делаю неправильно. Может ли кто-нибудь, кто знает, как работать if / else, дать мне некоторое представление об этом!
#include "stdafx.h"#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const float BASIC_RESIDENTIAL = 18.50;
const float BASIC_BUSINESS = 75.00;
const float CONNECT_RESIDENTIAL = 6.50;
const float CONNECT_BUSINESS = 5.00;
const float PREMIUM_RESIDENTIAL = 7.50;
const float PREMIUM_BUSINESS = 50.00;char customerType;
int numOfConnections;
int numOfPremiumChannels;
float amountCableBill;
cout << fixed << setprecision(2);
cout << "Residential or Business [R or B]? ";
cin >> customerType;
cout << endl << endl;
cout << "How many Additional Connections? ";
cin >> numOfConnections;
cout << endl << endl;
cout << "Total number of Premium Channels: ";
cin >> numOfPremiumChannels;
cout << endl << endl;if (customerType == 'R' || customerType == 'r')
{
amountCableBill = BASIC_RESIDENTIAL + CONNECT_RESIDENTIAL * numOfConnections + PREMIUM_RESIDENTIAL * numOfPremiumChannels;
}
//else customerType == 'B' || customerType == 'b'; // unnecessary
{
if (numOfConnections <= 9)
amountCableBill = BASIC_BUSINESS + PREMIUM_BUSINESS * numOfPremiumChannels;
else
amountCableBill = BASIC_BUSINESS + (numOfConnections - 9) * CONNECT_BUSINESS + PREMIUM_BUSINESS *numOfPremiumChannels;
}
cout << "Total amount of Cable Bill: " << amountCableBill << endl << endl;
cout << "Press <ENTER> to end..." << endl;_getch();
return 0;
}
Пока состояние else if (customerType == 'B' ...)
может быть излишним, вы все равно должны поставить else
перед открывающей скобой ветки.
Это
if (condition) { code } else { code }
Тебе нужно else
в condition
(если не хочешь «some other code
исполняться каждый раз)
if (customerType == 'R' || customerType == 'r')
{
//Some Code
}
else //<--Notice else
{
//Some other code.
}