If else in JSP (switch case)
If else in JSP (switch case)
在 JSP 在 eclipse 上制作网站:
select[i]从上一个网页正确获取为1到5的字符串
每个数字代表一个主题即:if select[i]==1 so sub=Maths
我无法在字符串上切换大小写,所以我尝试了 if else .. 但 sub 始终等于 null(声明)??如何让 sub 获取 if 条件下的值??
for (int i = 0; i < select.length; i++)
{
////
String sub=null;
if(select[i]=="1") {sub="Maths";}
else if (select[i]=="2") {sub="English";}
else if (select[i]=="3") {sub="Physics";}
else if (select[i]=="4") {sub="MI";}
else if (select[i]=="5") {sub="Software";}
////
rs=stmt.executeQuery("SELECT * FROM attends where userid= '"+user_id+"' and cid= '"+select[i]+"' ");
if(rs.next())//can not take it
{
out.println("You can not enroll in '"+sub+"' ");
}
else//can take it
{
int countUpdated =stmt.executeUpdate("INSERT INTO enroll (userid, cid) values ('"+user_id+"', '"+select[i]+"')");
out.println("Successfully enrolled in '"+sub+"' ");
}
}
试试这个
switch(select[i]) {
case "1":
sub="Maths";
break;
case "2":
sub="English";
break;
case "3":
sub="Physics";
break;
case "4":
sub="MI";
break;
case "5":
sub="Software";
break;
default:
sub="";
break
}
这是我在学习 Java 时 运行 遇到的第一个问题:==
与 equals
的窘境。幸运的是,一旦您理解了它们的不同之处,就很容易正确使用它们。
无论何时处理对象(如本例),==
运算符都用于确定两个变量是否实际指向同一个对象。在Java中对象是通过引用来处理的,所以如果object1 == object2
,那么变量object1
实际上指的是变量object2
所指的同一个对象。
这不是你想要的。您不是要确定两个 String 变量是否指向同一个对象,而是要确定它们的内容是否相同。为此,您应该使用 equals
方法,如下所示:
String sub=null;
if(select[i].equals("1")) {sub="Maths";}
else if (select[i].equals("2")) {sub="English";}
else if (select[i].equals("3")) {sub="Physics";}
else if (select[i].equals("4")) {sub="MI";}
else if (select[i].equals("5")) {sub="Software";}
这让你可以测试sub
的内容是否与字符串“1”、“2”等相同
而且我认为您关于 switch
语句的假设是不正确的:您 可以 在 Java 中打开一个字符串,并且 equals
方法在引擎盖下使用。所以像这样:
String sub;
switch (select[i]) {
case "1":
sub = "Maths";
break;
case "2":
sub = "English";
break;
case "3":
sub = "Physics";
break;
case "4":
sub = "MI";
break;
case "5":
sub = "Software";
break;
default:
sub = null;
break;
}
可能更可取,因为这就是 switch
语句的设计目的。
在 JSP 在 eclipse 上制作网站:
select[i]从上一个网页正确获取为1到5的字符串
每个数字代表一个主题即:if select[i]==1 so sub=Maths
我无法在字符串上切换大小写,所以我尝试了 if else .. 但 sub 始终等于 null(声明)??如何让 sub 获取 if 条件下的值??
for (int i = 0; i < select.length; i++)
{
////
String sub=null;
if(select[i]=="1") {sub="Maths";}
else if (select[i]=="2") {sub="English";}
else if (select[i]=="3") {sub="Physics";}
else if (select[i]=="4") {sub="MI";}
else if (select[i]=="5") {sub="Software";}
////
rs=stmt.executeQuery("SELECT * FROM attends where userid= '"+user_id+"' and cid= '"+select[i]+"' ");
if(rs.next())//can not take it
{
out.println("You can not enroll in '"+sub+"' ");
}
else//can take it
{
int countUpdated =stmt.executeUpdate("INSERT INTO enroll (userid, cid) values ('"+user_id+"', '"+select[i]+"')");
out.println("Successfully enrolled in '"+sub+"' ");
}
}
试试这个
switch(select[i]) {
case "1":
sub="Maths";
break;
case "2":
sub="English";
break;
case "3":
sub="Physics";
break;
case "4":
sub="MI";
break;
case "5":
sub="Software";
break;
default:
sub="";
break
}
这是我在学习 Java 时 运行 遇到的第一个问题:==
与 equals
的窘境。幸运的是,一旦您理解了它们的不同之处,就很容易正确使用它们。
无论何时处理对象(如本例),==
运算符都用于确定两个变量是否实际指向同一个对象。在Java中对象是通过引用来处理的,所以如果object1 == object2
,那么变量object1
实际上指的是变量object2
所指的同一个对象。
这不是你想要的。您不是要确定两个 String 变量是否指向同一个对象,而是要确定它们的内容是否相同。为此,您应该使用 equals
方法,如下所示:
String sub=null;
if(select[i].equals("1")) {sub="Maths";}
else if (select[i].equals("2")) {sub="English";}
else if (select[i].equals("3")) {sub="Physics";}
else if (select[i].equals("4")) {sub="MI";}
else if (select[i].equals("5")) {sub="Software";}
这让你可以测试sub
的内容是否与字符串“1”、“2”等相同
而且我认为您关于 switch
语句的假设是不正确的:您 可以 在 Java 中打开一个字符串,并且 equals
方法在引擎盖下使用。所以像这样:
String sub;
switch (select[i]) {
case "1":
sub = "Maths";
break;
case "2":
sub = "English";
break;
case "3":
sub = "Physics";
break;
case "4":
sub = "MI";
break;
case "5":
sub = "Software";
break;
default:
sub = null;
break;
}
可能更可取,因为这就是 switch
语句的设计目的。