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),各位大虾怎么看,望指教一二 展开
if(str1) {
switchFlag=1;
}
else
{
MessageBox(L"错误!");
switchFlag=0;
}
if(switchFlag)
{
以上是代码,调试显示str1为空时,本应执行完else里面内容,被跳过了,直接执行 if(switchFlag),各位大虾怎么看,望指教一二 展开
4个回答
展开全部
如果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的话。顺序执行是代码看起来更加结构化,更加规整,有利于将来代码的维护和他人的阅读。
如果跳过的话,建议在“if(str1) ”这行设置个断点看看str1的值。如果是指针的话,只要指针不为空就肯定不会执行else语句。
其次不推荐使用 if else语句。
建议
int Method ( /* 参数列表 */)
{//提取方法;
if ( 表达式为真 )
{
表达式为真时你要做的内容;
return 1;//某个错误代码 ;
}
表达式为假时你要做的内容;
return 0;//正确返回;
}
这样做的优缺点:
1.if else 在代码优化的时候,可能编译器会根据某种规则选择一个,可能是if里的,也可能是else里的表达式,如果在实际计算的时候和代码优化的逻辑判断不同,会造成不太好的结果。
2.if else 当嵌套过多,非常不容易判断代码的逻辑行为。 因为人脑很容易犯错误。
减少if else,甚至只用if的话。顺序执行是代码看起来更加结构化,更加规整,有利于将来代码的维护和他人的阅读。
展开全部
不知道你为什么要这样写??
if里面要写表达式 放一个字符串指针算啥??
我猜你是想表达这个
if[str!=Null] ...
这个和你写的那个是不一样的
if里面要写表达式 放一个字符串指针算啥??
我猜你是想表达这个
if[str!=Null] ...
这个和你写的那个是不一样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该不会这样,你再仔细调一下吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(str1.IsEmpty())
{}
else
{}
{}
else
{}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询