大家帮忙看看这段代码的判断语句怎么写呗 不明白你的意思。if(GetName(n[i],i)==TRUE);else; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是要在GetName写运算? // 是这样的要求?void jsk::GetName(CString str,int i){ bool b=false; _RecordsetPtr ptr; CMy11App * p=(CMy11App *)AfxGetApp(); if(str != "") { p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'"; p->open(ptr); //打开数据库 while(!ptr->rsEOF) { n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称"); GetName(n[i],i); b=true; qq.m[i]=n[i]; i++; ptr->MoveNext(); } } if(b) { //另一种运算 }} 在类中定义一个BOOL型成员变量,用于表示程序是否执行了GetName,初始化为FALSE,在GetName后面加上一行代码,把这个变量设置为TRUE,在需要分支的地方判断这个变量就可以了。 为什么不让GetName(n[i],i);返回BOOL型呢,这样就可以判断了. 大侠是这样吗BOOL pd; pd=FALSE; void jsk::GetName(CString str,int i) { pd=TRUE; _RecordsetPtr ptr; CMy11App * p=(CMy11App *)AfxGetApp(); if(str != "") { p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'"; p->open(ptr); //打开数据库 while(!ptr->rsEOF) { n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称"); GetName(n[i],i); if(pd=TRUE) {}; ELSE {}; qq.m[i]=n[i]; i++; ptr->MoveNext(); } } } pd=FALSE; void jsk::GetName(CString str,int i) { pd=TRUE; _RecordsetPtr ptr; CMy11App * p=(CMy11App *)AfxGetApp(); if(str != "") { p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'"; p->open(ptr); //打开数据库 while(!ptr->rsEOF) { n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称"); GetName(n[i],i); if(pd=TRUE) {}; ELSE {}; qq.m[i]=n[i]; i++; ptr->MoveNext(); } } }没能明白你想要的是什么意思,不过这个好像没意义吧,因为else都不可能执行到, 我是想按7楼说的那样做呀,在类中定义一个BOOL型成员变量,用于表示程序是否执行了GetName,初始化为FALSE,在GetName后面加上一行代码,把这个变量设置为TRUE,在需要分支的地方判断这个变量就可以了。可是貌似怎么都不会执行ELSE的,怎么办呀 你难道是这个意思??void jsk::GetName(CString str,int i) { _RecordsetPtr ptr; CMy11App * p=(CMy11App *)AfxGetApp(); if(str != "") { p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'"; p->open(ptr); //打开数据库 if(!ptr->rsEOF) { while(!ptr->rsEOF) { n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称"); GetName(n[i],i); //一种运算 qq.m[i]=n[i]; i++; ptr->MoveNext(); } } else { //另一种运算 } } } 可是貌似怎么都不会执行ELSE的,怎么办呀========================================为什么必须在else中修改这个 bool 成员呢?在任何其他地方都可以修改的嘛,只要符合触发GetName的条件了,就设置BOOL型成员变量为true,不符合了,就设置BOOL型成员变量为false不是说必须在 GetName 执行的前后设置条件,而是只需要在 GetName 执行之前进行判断即可 知道呀,就是在GetName(n[i],i);这里呀,执行这句递归就一种算法,如果直接执行qq.m[i]=n[i]就另外一种,那判断应该怎么写 看来还是没理解你的意思,你看看4楼是不是你要的,如果不是,再解释一下什么时候不走GetName(n[i],i)这一步。 难道这样??bool b=true;void GetName(){ //*** if(b) { GetName(); b=false; } else { qq.m[i]=n[i]; b=true; }} 谁有词频表啊 为什么我的ListCtrl无法取消选中? opencv 遇到 一个问题。在线求解答 关于OpenGL(GULT库函数)窗口关闭函数。 不解的问题 为什么我的组件用OLEVIEW查看时会出现非法操作,而其它组件正常? 在VC中如何将我画的图或线存成txt 请教高手:如何最小化除某一窗口的其它所有窗口? 有关COM的问题 关于vc2008中tab控制的切换使用问题 10 SDI程序搞的我头痛!高手快来帮忙!
是不是要在GetName写运算?
// 是这样的要求?void jsk::GetName(CString str,int i)
{
bool b=false;
_RecordsetPtr ptr;
CMy11App * p=(CMy11App *)AfxGetApp();
if(str != "")
{
p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'";
p->open(ptr); //打开数据库
while(!ptr->rsEOF)
{
n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称");
GetName(n[i],i);
b=true;
qq.m[i]=n[i];
i++;
ptr->MoveNext();
}
} if(b)
{
//另一种运算
}
}
pd=FALSE;
void jsk::GetName(CString str,int i)
{ pd=TRUE;
_RecordsetPtr ptr;
CMy11App * p=(CMy11App *)AfxGetApp();
if(str != "")
{
p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'";
p->open(ptr); //打开数据库
while(!ptr->rsEOF)
{
n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称");
GetName(n[i],i);
if(pd=TRUE)
{};
ELSE
{};
qq.m[i]=n[i];
i++;
ptr->MoveNext();
}
}
}
pd=FALSE;
void jsk::GetName(CString str,int i)
{ pd=TRUE;
_RecordsetPtr ptr;
CMy11App * p=(CMy11App *)AfxGetApp();
if(str != "")
{
p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'";
p->open(ptr); //打开数据库
while(!ptr->rsEOF)
{
n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称");
GetName(n[i],i);
if(pd=TRUE)
{};
ELSE
{};
qq.m[i]=n[i];
i++;
ptr->MoveNext();
}
}
}没能明白你想要的是什么意思,不过这个好像没意义吧,因为else都不可能执行到,
{ _RecordsetPtr ptr;
CMy11App * p=(CMy11App *)AfxGetApp();
if(str != "")
{
p->strSql = "select * from TABLE4 where 一级故障名称='"+str+"'";
p->open(ptr); //打开数据库
if(!ptr->rsEOF)
{
while(!ptr->rsEOF)
{
n[i]=(LPCTSTR)(_bstr_t)ptr->GetCollect("规则名称");
GetName(n[i],i);
//一种运算
qq.m[i]=n[i];
i++;
ptr->MoveNext();
}
}
else
{
//另一种运算
}
}
}
========================================
为什么必须在else中修改这个 bool 成员呢?在任何其他地方都可以修改的嘛,
只要符合触发GetName的条件了,就设置BOOL型成员变量为true,
不符合了,就设置BOOL型成员变量为false不是说必须在 GetName 执行的前后设置条件,
而是只需要在 GetName 执行之前进行判断即可
void GetName()
{
//***
if(b)
{
GetName();
b=false;
}
else
{
qq.m[i]=n[i];
b=true;
}
}