为什么if和else会同时执行?

Nicky- 2021-01-02 09:19:35
List<User> users = liteCommand.ExecuteQuery<User>();
foreach (var item in users)
{
if (userName.text == item.UserName && passWord.text == item.Password)
{

SceneManager.LoadScene(1);
Debug.Log("执行了if");
break;
}

else
{

Debug.Log("执行了else");
text.SetActive(true);
Invoke("DisableText", 1.5f);
}


}

为什么if和else会同时执行呢?初学真的看不太懂,求大佬指教
...全文
6121 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
morliz子轩 2021-04-03
在循环中,去if,else,这就就是表中有多少记录,就判断 多少次if 还是else。 if拿到符合条件的只有1次。那当然其它的都成了else。 这代码作用是什么,要先搞清楚,目的是什么也要明白。
  • 打赏
  • 举报
回复
这是一个集合,其中的数据有符合if的情况的,也有符合else的情况的。
  • 打赏
  • 举报
回复
心蓝168 2021-04-02
第一个User走了Else,第二User走了If,然后跳出了
  • 打赏
  • 举报
回复
先执行了12次else,在执行了1次if,如果你在else里面也加入break,就不会又执行if,又执行else了
  • 打赏
  • 举报
回复
这没有同时执行呀
  • 打赏
  • 举报
回复
枫雁 2021-03-21
引用 1 楼 HerryDong 的回复:
这应该是有可能的,你现在是在遍历一个User的集合,第一个User不符合条件,执行了else,第二个User刚好符合if的条件,所以输出两个信息。至于同时执行if和else应该是不可能的。


二楼正解,多个项,某个项满足条件1,某个项满足条件2,根据你的情况,有2个项。
  • 打赏
  • 举报
回复
不导翁 2021-03-20
并不是同时执行吧,你的if else语句放在foreach循环里面,每一次循环都只执行一个if 或 else
  • 打赏
  • 举报
回复
姎楹 2021-01-04
你要是不想每次循环都执行,可以现在循环里面判断是否找到用户,然后在循环外面就用一个if else
  • 打赏
  • 举报
回复
IT_study001 2021-01-04
1楼正解,思路是这样的,首先遍历你的list<user> 一项项 item 匹配 if 括号里的条件,符合走执行if 否则 走 else 根据你发的图上的结果,执行了else 12次,if 1次。并不是同时进行
  • 打赏
  • 举报
回复
张天星 2021-01-04
if1次,else12次,总共循环了13次,不可能同时执行。
  • 打赏
  • 举报
回复
shawn_yang 2021-01-04
不同的item
  • 打赏
  • 举报
回复
andy_wanhl 2021-01-04
你这是for循环。有的走if,有的走else
  • 打赏
  • 举报
回复
沫含天下 2021-01-04
把users的信息 打印出来,一个用户信息仅执行一次哦
  • 打赏
  • 举报
回复
肖无疾 2021-01-03
总共循环了十三次,截图右侧有执行次数。
  • 打赏
  • 举报
回复
引用 1 楼 HerryDong的回复:
这应该是有可能的,你现在是在遍历一个User的集合,第一个User不符合条件,执行了else,第二个User刚好符合if的条件,所以输出两个信息。至于同时执行if和else应该是不可能的。
1楼说得没毛病!
  • 打赏
  • 举报
回复
sunny_zzy 2021-01-03
赞成一楼,因为这是一个循环,它会执行多次当条件不满时就会执行else
  • 打赏
  • 举报
回复
HerryDong 2021-01-02
这应该是有可能的,你现在是在遍历一个User的集合,第一个User不符合条件,执行了else,第二个User刚好符合if的条件,所以输出两个信息。至于同时执行if和else应该是不可能的。
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2021-01-02 09:19
社区公告

让您成为最强悍的C#开发者