C++条件问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:58:21
#include <iostream.h>
void main()
{
char Name;
cout<<"请输入您的姓名:"<<endl;
cin>>Name;
if(Name='j')
{
cout<<"第一"<<endl;
}
else
{
cout<<"第二"<<endl;
}

}

这个程序能运行,但是怎么我打什么都是输出 第一 啊?怎么让他输出第二啊?
为什么我把j改成斯蒂芬就不行了?

if(Name='j')
应改为

if(Name=='j')

这是因为if后的括号中应该为一个条件表达式,而不是一个赋值表达式。=是赋值运算符,而==才是条件运算符。Name='j',是把'j'这个字符常量赋给Name这个字符变量,不能作为条件;而Name='j'则是判断Name这个字符变量中村的字符是不是等于'j',如果等于,证明条件满足,执行if子句,否则条件不满足,执行else子句。
#include <iostream.h>
void main()
{
char Name;
cout<<"请输入您的姓名:"<<endl;
cin>>Name;
if(Name=='j')
{
cout<<"第一"<<endl;
}
else
{
cout<<"第二"<<endl;
}

}

=是赋值,赋值之后Name就等于j,不为0则永远为真
==是等于,if(Name=='j') 是判断Name是否等于j

if(Name='j')
应改为
if(Name=='j')

if(Name='j')中的“Name = j”是一个赋值语句,其总是为真。
所以程序不会执行else条件内的 第二

把 if(Name = 'j')改为if(Name == 'j')即可
当您输入'j'时打印 第一 ,当你输入其他字符则打印 第二

if(Name='j')这里错了,你应该是要判断输入的Name是否等于j吧,但你少写了一个“