决定不起作用,如果是,否则c ++

时间:2015-06-21 01:03:41

标签: c++ if-statement

今天我了解if if else if,所以我想到了一个想法,我制作了一个程序,需要六个数字并要求选择,因此添加决策正常工作,但其他两个也可以作为第一个决定。请给我解决方案谢谢..

#include<iostream.h>
#include<conio.h>
void main ()
{
int a,a1,a2,a3,a4,a5,adse,sum,sub;
cout<<"\nPlease Enter The First Number : ";
cin>>a;
cout<<"\nPlease Enter The Second Number : ";
cin>>a1;
cout<<"\nPlease Enter The Third Number : ";
cin>>a2;
cout<<"\nPlease Enter The Fourth Number : ";
cin>>a3;
cout<<"\nPlease Enter The Fifth Number : ";
cin>>a4;
cout<<"\nPlease Enter The sixth Number : ";
cin>>a5;
sum=a+a1+a2+a3+a4+a5;
sub=a-a1-a2-a3-a4-a5;
cout<<"\nPlease Select the chioce(1,2,3)";
cout<<"\n1:Adding";
cout<<"\n2:Subtracting";
cout<<"\n3:Exit";
cout<<"\nPlease Enter Your Choice : ";
cin>>adse;
if (adse=1)
{
cout<<"\nThe Addition is : "<<sum;
}
else if(adse=2)
{
cout<<"\nThe Subtraction is : "<<sub;
}
else if(adse=3)
{
cout<<exit(0);
}
else
{
cout<<"\nSorry Wrong Choice, Program is Closing";
}
getch();
}

2 个答案:

答案 0 :(得分:5)

你应该使用&#34; ==&#34;而不是&#34; =&#34;在比较中。

答案 1 :(得分:0)

<强>第一

比较语句时,您需要使用==而不是=。这是因为在您的示例中,adse未进行比较,但adse正在设置为一,就像您编写adse = 1;一样。

现在bool是true / false语句,但是当存储在内存中时代表false为0而true为1.所以当你测试状态时一个boolian你正在测试它是否等于一个。现在问及这与你的问题有什么关系。因为adse被设置为1,所以if语句与if (true)相同,并且将始终输入。因为第一个语句将始终输入,所以else语句将永远不会执行,并且其中四个将永远不会运行

要解决此问题,请在条件语句中将=替换为==,如下所示:

if (adse == 1)
{
    ....
}

<强>第二

缩进代码,使其他人和您自己更容易阅读。