任何人都可以告诉我为什么以下代码中的else语句不起作用。我是java的初学者。
global $var
答案 0 :(得分:1)
你的其他还不够,因为还有其他两个案例。首先,如果cookie名称等于“特殊”,则为else,然后为else,如果名为“special”的cookie的值不为null,则为else。而不是用两个重复的elses阻塞代码,这里最好设置一个布尔值,如下所示:
try (PrintWriter out = response.getWriter())
{
request.getRequestDispatcher("link.html").include(request, response);
String u = null;
Cookie cookies[] = request.getCookies();
Boolean blnFoundSpecialCookieWithValue = false; //initialize to false
for (Cookie cookie : cookies)
{
if ((cookie.getName()).equals("special"))
{
String name = cookie.getValue();
if (!name.equals(u))
{
blnFoundSpecialCookieWithValue = true; //set boolean
out.print("<b>Welcome to Profile</b>");
out.print("<br>Welcome, " + name);
}
}
}
//use boolean here to minimize number of else blocks needed
//and not have to repeat the out.print()s
if(!blnFoundSpecialCookieWithValue)
{
out.print(" LogIn First ");
request.getRequestDispatcher("login.html").include(request, response);
}
}
答案 1 :(得分:1)
那是因为u的值为空。
答案 2 :(得分:0)
在您的代码中,u
等于null
,然后您获得String
名称并且它等于某事,在if
语句中,您检查name
} doens等于u
,它将永远为真,而else将不会被执行。