gpt4 book ai didi

Java Servlet if 语句不需要 { } 括号?

转载 作者:行者123 更新时间:2023-12-01 23:44:53 26 4
gpt4 key购买 nike

我是一名初学者,正在阅读 Murach 的 Java Servlet 和 JSP...浏览示例。有点卡在这个 Ch11 简单购物车示例中。
我会在这里发布整个代码,但它真的很长。

我已将完整代码放在我的保管箱链接上:https://dl.dropboxusercontent.com/u/36625850/Ch11-JSTL.rar

问题:

  1. CartServlet.java

    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 有什么不同呢?

  2. cart.java

    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);
    }

我无法理解的是item.getProduct().getCode();。我不太确定这会输出什么。

最佳答案

if-else子句(以及所有其他控制结构)在java中按 block 读取。

所以如果你把

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");
}

因此测试上面的代码是否 x == 1 ,

in first if statement 
prints --> "b"
in second if statement
prints --> "a"
"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
}

在 Java 中,建议始终使用大括号。

关于你的第二个问题

item.getProduct().getCode();

item 是 LineItem 对象。

你的类(class)肯定是

public class LineItem{

private Product product;

public Product getProduct(){
return product;
}


}

产品类别

public class Product{

private String code;

public String getCode(){
return code;
}

}

关于Java Servlet if 语句不需要 { } 括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com