永发信息网

C#多个if语句之间的逻辑关系是怎样的,千万不要跟我说什么就近原则?

答案:5  悬赏:10  手机版
解决时间 2021-02-17 08:57
C#多个if语句之间的逻辑关系是怎样的,千万不要跟我说什么就近原则?
最佳答案
// 这个没有就近原则。
if (ds.Tables.Count > 0) 如果数据数大于0 进入此分支
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0) 满足数据数大于0了,在判断行数是否大于0,满足进入此分支
{
string sDBPwd = dt.Rows[0]["Pwd"].ToString().Trim();
if (sPwd == sDBPwd) // 行数>0了,此处判断第一行里的密码是否跟参数一样,一样进入此分支
{

user.AddTime = DateTime.Parse(dt.Rows[0]["AddTime"].ToString());
user.Pwd = dt.Rows[0]["Pwd"].ToString();
user.RealName = dt.Rows[0]["RealName"].ToString();
user.RoleID = dt.Rows[0]["RoleID"].ToString();
user.UserId = dt.Rows[0]["UserId"].ToString();
user.UserName = dt.Rows[0]["UserName"].ToString();
return true; // 数据库检索出的密码 跟 参数密码一致,返回true
}
// 跟数据库查询出的密码 跟 参数的密码 不一样则返回false
return false;
}
// 这个是上面判断行是否有数据的分支,如果行里数据<=0 ,执行
return false;
}
// 这个是那个Table里是否有数据,当<=0 时 执行的。
return false;
}
===================
你是看花眼了。给你个简单的,就看清出了。
if (i < 100) 不满足小于100,就不执行if里面的语句,就执行下面的return "i >= 100"
{
if (i < 50) 不满足小于50,就不执行if里面的语句,就执行下面的return "i >= 50"
{
if (i < 20) 不满足小于20,就不执行if里面的语句,就执行下面的return "i >= 20"
{
}
return "i >= 20"
}
return "i >= 50"
}
return "i >= 100"
全部回答
if (ds.Tables.Count > 0)//如果ds.Tables.Count 大于0的时候执行下面.否则执行括号以外的.
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)//当ds.Tables.Count 大于0且dt.Rows.Count 大于0执行下面,否则执行括号以外的,就是return false;
{
string sDBPwd = dt.Rows[0]["Pwd"].ToString().Trim();
if (sPwd == sDBPwd)//当上面两个条件都符合,且符合当前条件执行下面,否则执行括号以外的,就是return false;
{
user.AddTime = DateTime.Parse(dt.Rows[0]["AddTime"].ToString());
user.Pwd = dt.Rows[0]["Pwd"].ToString();
user.RealName = dt.Rows[0]["RealName"].ToString();
user.RoleID = dt.Rows[0]["RoleID"].ToString();
user.UserId = dt.Rows[0]["UserId"].ToString();
user.UserName = dt.Rows[0]["UserName"].ToString();
return true;//当执行到这里面完毕后,最后返回true .
}
return false;
}
return false;
}
return false;
}
if之内以{}为一个程序块。
if…A…then
{
//一个大括号{} 代表归属,
If…B…then
{
C
//此处结束为B的条件范围
}
//此处结束为止都属于A条件范围
}
第1个 IF : 如果数据集中的表的数量大于0 就执行
就初始化一张表DT等于上面数据集中的表0
否则
直接跳到最后1个RETURN FALSE
第2个IF(包含在第1个IF中,如果第1个执行不大于0,那么这个IF就会直接跳出,不执行该IF中包含的语句) : 如果DT表中的行数大于0
初始化1个字符串SDBPWD= DT表中第1行的PWD的值

第3个IF(包含在第2个IF中,如果第2个IF,判断不为真,不会到这一步) 如果SPWD与SDBPWD相等,表示密码正确,返回TRUE
关系我说不出来,你这3个IF,就好像箱子里面装箱子吧,第1个箱子不打开,后面的都打不开,任何一个箱子打不开,都会返回FALSE,就是密码验证失败,形容的不是很贴切,你关键看if 下面的两个大括号,{} 他括起来的代码,就是该IF如果判断为真的时候执行的
如果判断不为真,就直接跳到该IF的}下面去了
就近原则是if和else之间的关系,if和if的关系只可能是顺序上的并列和嵌套.
这段代码里的就属于嵌套.
if (ds.Tables.Count > 0)//如果dataset里有datatable,执行操作,没有就反回false
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)//如果Datable里有数据执行操作,没有反回false
{
string sDBPwd = dt.Rows[0]["Pwd"].ToString().Trim();
if (sPwd == sDBPwd)//如果密码正确,将当前登陆User保存,不正确反回false
{
user.AddTime = DateTime.Parse(dt.Rows[0]["AddTime"].ToString());
user.Pwd = dt.Rows[0]["Pwd"].ToString();
user.RealName = dt.Rows[0]["RealName"].ToString();
user.RoleID = dt.Rows[0]["RoleID"].ToString();
user.UserId = dt.Rows[0]["UserId"].ToString();
user.UserName = dt.Rows[0]["UserName"].ToString();
return true;
}
return false;
}
return false;
}
return false;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
apache 服务器什么作用
现在羊卖多少钱一斤
求问工业纯钛TA1 TA2 TA3在颜色上有分别吗?
做试管因为内膜薄,一直不能移植,现在终于移
少年强则国强......那几句话是怎么说的来着?
为什么会出现如下 错误提示
李鸿章见过梁启超吗
1/3x(200-x)=1/10x+19这个方程怎么解
陌陌点点,点完了都没有给我点赞的,是什么情
七岁儿子叫我滚,怎么办
浙bd8889
唐朝有几个皇帝
2011国际化学年(IYC2011)的主题是“化学-人
如何看一个男人值不值得托付终身
招字与让字的词性相同吗?
推荐资讯
求韩国女子组合April每个人的姓名出生年月日!
晚上太晚吃钙片对身体好吗
如何闻香识红木?
如果三块硬盘做个RAID 5 ,拔下来以后混了,
怎么打赢不退彩礼的官司
手机突然联不上四G网什么原因
衡阳市大唛ktv在哪里?
怎么样删除用itunes从电脑里导到手机里的照片
斗鱼可以和蓝曼龙混养吗
w5儿童智能手表怎么使用和安装
卡丝博家居布艺生活馆海门店怎么去啊,有知道
金塘塆地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?