Member 13318271 Ответов: 2

Моя программа-это программа калькулятора, я начинаю, и моя программа работает, но оператор switch не работает, вы все можете мне помочь.


#include<iostream>
using namespace std;
int main()
{
float a,b;
char ch,ch1;
int n;
	cout<<"Calculator"<<endl;
	cout<<"Please select below"<<endl;
	cout<<"1.Addition"<<endl;
	cout<<"2.Subtration"<<endl;
	cout<<"3.Multiplication"<<endl;
	cout<<"4.Division"<<endl;
	cout<<"5.Exit";
	cin>>ch;
	do
	
	{
			
		
	switch(ch)
	
	{
		case 1:
		cout<<"Enter the nos for addition = "<<endl;
		cin>>a>>b;
		cout<<"The result is = "<<a+b<<endl;
		break;
		case 2:
		cout<<"Enter the nos for subtration = "<<endl;
		cin>>a>>b;
		cout<<"The result is = "<<a-b<<endl;
		case 3:
		cout<<"Enter the nos for Multiplication = "<<endl;
		cin>>a>>b;
		cout<<"The result is = "<<a*b<<endl;
		case 4:
		cout<<"Enter the nos for Division = "<<endl;
		cin>>a>>b;
		cout<<"The result is = "<<a/b<<endl;
		case 5:
		cout<<" "<<endl;
		exit(0);
		cout<<"Do you want to continue(Y/N)"<<endl;
		default:
			cout<<"Wrong";
	}

}
	while(ch1=='y' || ch1=='Y');
}


Что я уже пробовал:

я пробовал некоторые, но они не работают.

ZurdoDev

Что значит "не работает"?"

jeron1

пробовать

case '1':
case '2':
.
.

2 Ответов

Рейтинг:
2

OriginalGriff

Число 1-это не то же самое, что символ "1", поэтому, когда ваш switch сравнивает их, но никогда не находит совпадения.
Попробовать это:

switch(ch)
    {
    case '1':
    cout<<"Enter the nos for addition = "<<endl;
    cin>>a>>b;
    cout<<"The result is = "<<a+b<<endl;
    break;
И так далее для других случаев-тогда это должно сработать.


Рейтинг:
2

Patrice T

Совет: Научитесь делать отступы в коде, это поможет чтению.

#include<iostream>
using namespace std;
int main()
{
	float a,b;
	char ch,ch1;
	int n;
	cout<<"Calculator"<<endl;
	cout<<"Please select below"<<endl;
	cout<<"1.Addition"<<endl;
	cout<<"2.Subtration"<<endl;
	cout<<"3.Multiplication"<<endl;
	cout<<"4.Division"<<endl;
	cout<<"5.Exit";
	cin>>ch;
	do
	{
		switch(ch)
		{
		case 1:
			cout<<"Enter the nos for addition = "<<endl;
			cin>>a>>b;
			cout<<"The result is = "<<a+b<<endl;
			break;
		case 2:
			cout<<"Enter the nos for subtration = "<<endl;
			cin>>a>>b;
			cout<<"The result is = "<<a-b<<endl;
		case 3:
			cout<<"Enter the nos for Multiplication = "<<endl;
			cin>>a>>b;
			cout<<"The result is = "<<a*b<<endl;
		case 4:
			cout<<"Enter the nos for Division = "<<endl;
			cin>>a>>b;
			cout<<"The result is = "<<a/b<<endl;
		case 5:
			cout<<" "<<endl;
			exit(0);
			cout<<"Do you want to continue(Y/N)"<<endl;
		default:
			cout<<"Wrong";
		}
	}
	while(ch1=='y' || ch1=='Y');
}

-----
После того как вы применили исправление решения 1, вы увидите, что в вашем коде есть и другие проблемы. Используйте отладчик, чтобы увидеть, что на самом деле делает ваш код, вы должны довольно быстро понять, почему ваш код терпит неудачу.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.