У меня возникла небольшая проблема с учебной программой на сайте cpp. Подсказка:
Write a program that presents the user w/ a choice of your 5 favorite beverages (Coke, Water, Sprite, ... , Whatever). Then allow the user to choose a beverage by entering a number 1-5. Output which beverage they chose.
★ If you program uses if statements instead of a switch statement, modify it to use a switch statement. If instead your program uses a switch statement, modify it to use if/else-if statements.
Когда я компилирую и запускаю, после ввода пользователя нет вывода.
#include <iostream>
//cola machine
main ()
{
//intro and options
std::cout << "Welcome. What will you have?";
std::cout << std::endl;
std::cout << "1 - Coke";
std::cout << std::endl;
std::cout << "2 - Pepsi";
std::cout << std::endl;
std::cout << "3 - Mtn. Dew";
std::cout << std::endl;
std::cout << "4 - Water";
std::cout << std::endl;
std::cout << "5 - Cancel";
std::cout << std::endl;
//choice
int choice;
std::cin >> choice;
switch (choice)
{
case '1':
std::cout << "Coke";
break;
case '2':
std::cout << "Pepsi";
break;
case '3':
std::cout << "Mt. Dew";
break;
case '4':
std::cout << "Water";
break;
case '5':
std::cout << "void";
break;
default:
std::cout << "enjoy your ";
std::cout << choice;
std::cout << "!";
}
Любое руководство было бы замечательным, и спасибо за ваше время.
case '1' должен быть просто case 1: и то же самое в остальном, '1' - это тип char, 1 - это int. Он компилируется, потому что «1» имеет целочисленное значение, но не 1.
Вы можете исключить оператор switch и использовать массив std::string: const std::string choices[] = {"Unknown", "Coke", "Pepsi", "Mtn. Dew", "Water", "Cancel"}; Затем вы можете сказать: std::cout << choices[choice] << "\n";.
@ThomasMatthews Я думал о том, чтобы сделать это tbh, но я практикую струнные, и я просто проверил подсказку, когда писал это, она говорит: «Напишите программу, которая представляет пользователю выбор из 5 ваших любимых напитков (Coke, Water, Sprite , ..., что угодно). Затем позвольте пользователю выбрать напиток, введя число от 1 до 5. Выведите, какой напиток он выбрал. ★ Если вы программируете, используя операторы if вместо оператора switch, измените его, чтобы использовать оператор switch . Если вместо этого ваша программа использует оператор switch, измените его, чтобы использовать операторы if / else-if. "





Это то, что вы ищете.
#include <iostream>
//cola machine
int main()
{
//intro and options
std::cout << "Welcome. What will you have?";
std::cout << std::endl;
std::cout << "1 - Coke";
std::cout << std::endl;
std::cout << "2 - Pepsi";
std::cout << std::endl;
std::cout << "3 - Mtn. Dew";
std::cout << std::endl;
std::cout << "4 - Water";
std::cout << std::endl;
std::cout << "5 - Cancel";
std::cout << std::endl;
//choice
int choice;
std::cin >> choice;
std::cout << "Enjoy your ";
switch (choice)
{
case 1:
std::cout << "Coke";
break;
case 2:
std::cout << "Pepsi";
break;
case 3:
std::cout << "Mt. Dew";
break;
case 4:
std::cout << "Water";
break;
case 5:
std::cout << "void";
break;
default:
std::cout << "NONE SELECTED";
}
std::cout << "!\n";
system("PAUSE");
}
Ваш
choice- этоint, и вы сравниваете его с символьными литералами, значение которых не совпадает с цифрой, которую они представляют.case '1':- этоcase 49:с кодировкой ascii.