MFC编程if else问题

GetDlgItem(IDC_EDIT1)->GetWindowText(str1);if(str1){switchFlag=1;}else{MessageBox(L"错... GetDlgItem(IDC_EDIT1)->GetWindowText(str1);
if(str1) {
switchFlag=1;

}
else
{
MessageBox(L"错误!");
switchFlag=0;
}
if(switchFlag)
{

以上是代码,调试显示str1为空时,本应执行完else里面内容,被跳过了,直接执行 if(switchFlag),各位大虾怎么看,望指教一二
展开
 我来答
穷皮鼠沙之1i
2012-12-16 · TA获得超过1337个赞
知道小有建树答主
回答量:582
采纳率:100%
帮助的人:639万
展开全部
如果str1为CString的话,建议使用 TRUE == str1.isEmpty()判断。
如果跳过的话,建议在“if(str1) ”这行设置个断点看看str1的值。如果是指针的话,只要指针不为空就肯定不会执行else语句。
其次不推荐使用 if else语句。
建议
int Method ( /* 参数列表 */)
{//提取方法;
if ( 表达式为真 )
{
表达式为真时你要做的内容;
return 1;//某个错误代码 ;
}
表达式为假时你要做的内容;
return 0;//正确返回;
}
这样做的优缺点:
1.if else 在代码优化的时候,可能编译器会根据某种规则选择一个,可能是if里的,也可能是else里的表达式,如果在实际计算的时候和代码优化的逻辑判断不同,会造成不太好的结果。
2.if else 当嵌套过多,非常不容易判断代码的逻辑行为。 因为人脑很容易犯错误。
减少if else,甚至只用if的话。顺序执行是代码看起来更加结构化,更加规整,有利于将来代码的维护和他人的阅读。
百度网友680f9a4
2012-12-16 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:126万
展开全部
不知道你为什么要这样写??
if里面要写表达式 放一个字符串指针算啥??
我猜你是想表达这个
if[str!=Null] ...
这个和你写的那个是不一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
superdaojian
2012-12-16 · TA获得超过377个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:144万
展开全部
应该不会这样,你再仔细调一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
相思丶猫2C
2012-12-16 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:949万
展开全部
if(str1.IsEmpty())
{}
else
{}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式