Java Servlet如果station don';不需要{}括号吗?
我是一个初学者,正在阅读Murach的Javaservlet和JSP。。。通过这些例子。在这个Ch11简单购物车的例子中有点卡住了。Java Servlet如果station don';不需要{}括号吗?,java,jsp,servlets,Java,Jsp,Servlets,我是一个初学者,正在阅读Murach的Javaservlet和JSP。。。通过这些例子。在这个Ch11简单购物车的例子中有点卡住了。 我想在这里发布整个代码,但它真的太长了 我已将完整代码放在我的dropbox链接上: 问题: CartServlet.java if(quantity > 0) cart.addItem(lineItem); else if(quantity == 0) cart.removeItem(lineItem); session.setA
我想在这里发布整个代码,但它真的太长了 我已将完整代码放在我的dropbox链接上: 问题:
if(quantity > 0)
cart.addItem(lineItem);
else if(quantity == 0)
cart.removeItem(lineItem);
session.setAttribute("cart", cart);
String url = "/cart.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
dispatcher.forward(request, response);
这可能是个愚蠢的问题。我注意到servlet If语句不需要{}?为什么会这样?我的意思是,常规的java if语句都需要{},那么为什么servlet会有所不同呢
public void addItem(LineItem item)
{
String code = item.getProduct().getCode();
int quantity = item.getQuantity();
for (int i = 0; i < items.size(); i++)
{
LineItem lineItem = items.get(i);
if (lineItem.getProduct().getCode().equals(code))
{
lineItem.setQuantity(quantity);
return;
}
}
items.add(item);
}
public void addItem(行项目)
{
字符串代码=item.getProduct().getCode();
int数量=item.getQuantity();
对于(int i=0;i
item.getProduct().getCode()代码>。我不确定这个输出会是什么
如果在if中不使用任何{},它将执行它后面的第一条语句。如果使用{},它将执行带有{}的all语句
比如说
假设条件
为真
if(condition)
sttmnt1; // it will execute this only
sttmnt2; // this is out of if block
在以下情况下,将执行两个sttmnt
if(condition){
sttmnt1;
sttmnt2;
}
在你的例子中
if(quantity > 0)
cart.addItem(lineItem);
else if(quantity == 0)
cart.removeItem(lineItem);
在if和elseif条件中,只有一条语句。所以没有必要使用{}
了解什么是item.getProduct().getCode()
将返回,检查LineItem
类的getProduct方法中返回的类对象。在返回的对象的类类型检查中,whet是getCode()
如果在if中不使用任何{},它将执行它后面的第一条语句。如果使用{},它将执行带有{}的all语句
比如说
假设条件
为真
if(condition)
sttmnt1; // it will execute this only
sttmnt2; // this is out of if block
在以下情况下,将执行两个sttmnt
if(condition){
sttmnt1;
sttmnt2;
}
在你的例子中
if(quantity > 0)
cart.addItem(lineItem);
else if(quantity == 0)
cart.removeItem(lineItem);
在if和elseif条件中,只有一条语句。所以没有必要使用{}
了解什么是item.getProduct().getCode()
将返回,检查LineItem
类的getProduct方法中返回的类对象。在返回的对象的类类型检查中,whet是getCode()
java中按块读取的if-else子句(和所有其他控制结构)
所以如果你把
if(x>2)
System.out.println("a"); ==> this is the next block
System.out.println("b");
if(x<2)
{ ==> this is the next block
System.out.println("a");
System.out.println("b");
}
另一个例子
if(x>2)
for(int i=0;i<100;i++) --> next block of if
for(int j=0;j<200;j++){ --> next block of first for
if(x>0)
Sysout("a"); --> next block of if
else
Sysout("b"); --> next block of else
}
产品类别
public class Product{
private String code;
public String getCode(){
return code;
}
}
java中按块读取的if-else子句(和所有其他控制结构)
所以如果你把
if(x>2)
System.out.println("a"); ==> this is the next block
System.out.println("b");
if(x<2)
{ ==> this is the next block
System.out.println("a");
System.out.println("b");
}
另一个例子
if(x>2)
for(int i=0;i<100;i++) --> next block of if
for(int j=0;j<200;j++){ --> next block of first for
if(x>0)
Sysout("a"); --> next block of if
else
Sysout("b"); --> next block of else
}
产品类别
public class Product{
private String code;
public String getCode(){
return code;
}
}
Servlet Java代码只是普通的Java代码。不带括号的if
在常规Java中的工作方式相同
您的LineItem
类有一个方法getProduct
,其返回值是一个具有getCode
方法的对象。此代码段所做的是将items
中所有条目的getProduct().getCode()
的值与给定条目的值进行比较。如果其中任何一个匹配,函数将中断并返回。因此,简而言之,此方法确保getProduct().getCode()
集合中只有不同的items
值
Servlet Java代码只是普通的Java代码。不带括号的if
在常规Java中的工作方式相同
您的LineItem
类有一个方法getProduct
,其返回值是一个具有getCode
方法的对象。此代码段所做的是将items
中所有条目的getProduct().getCode()
的值与给定条目的值进行比较。如果其中任何一个匹配,函数将中断并返回。因此,简而言之,此方法确保getProduct().getCode()
集合中只有不同的items
值
您需要了解的是,{}
使多个语句显示为一个块
有点像语句分组
因此,当您只有一条语句时,并不真正需要{}
,但是当您有多条语句时,{}
是有用的
但是,即使对于单行语句,我也一直使用括号,因为对我来说它看起来很漂亮:-)您需要理解的是,{}
使多个语句显示为一个块
有点像语句分组
因此,当您只有一条语句时,并不真正需要{}
,但是当您有多条语句时,{}
是有用的
然而,即使对于一行语句,我也一直使用括号,因为对我来说,它看起来很漂亮:-)如果语句对于所有语句都是相同的。
没有单独的(JavaServletIF语句)
如果只有一条语句要执行(当[If,else-If,else,while,for])满足时,我们就不需要使用{}(但不推荐使用,会出现可读性问题)
例:
与
if(condition)
System.out.println("hai");
同样地
int i=1;
while(i++!=10){
System.out.println("hai");
}
与
int i=1;
while(i++!=10)
System.out.println("hai");
在Java中,只有switch语句需要{},即使它只有一个case语句,如果语句对所有语句都相同。
没有单独的(JavaServletIF语句)
如果只有一条语句要执行(当[If,else-If,else,while,for])满足时,我们就不需要使用{}(但不推荐使用,会出现可读性问题)
例:
与
if(condition)
System.out.println("hai");
同样地
int i=1;
while(i++!=10){
System.out.println("hai");
}
与
int i=1;
while(i++!=10)
System.out.println("hai");
在Java中,仅switch语句需要{},即使它有单case语句,Servlet也是Java代码,适用于核心Java的规则也适用于Servlet。
{}用于将多个语句组合到单个块中。
前
在上面的示例中,只有当条件的计算结果为true时,才会执行语句1。语句2不属于if
语句的一部分