5个IF语句,为什么只显示最后一个IF语句?
string u = "";
string Id = Requst["id"];
string Type = Request["type"]
if (Type == "1" || Id == "0")
{
u="XX";
}
if (Type == "2" || Id == "0")
{
u="XX";
}
if (Type == "3" || Id == "0")
{
u="XX";
}
if (Type == "4" || Id == "0")
{
u="XX";
}
if (Type == "5" || Id == "0")
{
u="XX";
}
Response.Write(u);
以上语句,满足条件后(a.aspx?type=1&id=0)运行后只显示最后一个,其他的不显示,这是什么情况?
------解决方案--------------------你只Response.Write(u);一次
------解决方案--------------------你的五个if语句都执行了,因为id=0,而你在每个if里面都重新对u进行赋值,所以u的值是最后一次赋的值,即第五次赋的值。
------解决方案--------------------因为
------解决方案-------------------- Id == "0"
可以这么写
if(id=="0")
{
if (Type == "1") { u="XX"; }
if (Type == "2") { u="XX"; }
if (Type == "3") { u="XX"; }
if (Type == "4" ) { u="XX"; }
if (Type == "5" ) { u="XX"; }
}
------解决方案--------------------u 每次都重新赋值了 没有累加
------解决方案--------------------
id="0"这个条件可以提取出来,不然你得五个if会全部触发,所以只会输出最后一个执行后的值
------解决方案--------------------或者你用
if (Type == "1" && Id == "0") { u="XX"; }
if (Type == "2" && Id == "0") { u="XX"; }
if (Type == "3" && Id == "0") { u="XX"; }
if (Type == "4" && Id == "0") { u="XX"; }
if (Type == "5" && Id == "0") { u="XX"; }
Type == "1" && Id == "0" 意思为:type等于1,并且id等于0 两个条件都要满足
Type == "1"
------解决方案-------------------- Id == "0" 意思为:type等于1,或者id等于0 两个条件只需要满足一个即可
------解决方案--------------------