Java 在没有其他语句的情况下中断

Java 在没有其他语句的情况下中断,java,Java,每个项目都有一个唯一的代码 项目也有名称,它不必是唯一的 我添加的所有内容都是一个代码,如果代码不存在,它会询问名称 如果代码确实存在,它将只打印下面的语句和“break” System.out.println("Already exists"); 但当我再次键入相同的项目代码时 它不仅打印出声明,还问我名字。 这是我的密码 String code = //scannerobject; for(Item item: items) if(i

每个项目都有一个唯一的代码

项目也有名称,它不必是唯一的

我添加的所有内容都是一个代码,如果代码不存在,它会询问名称

如果代码确实存在,它将只打印下面的语句和“break”

System.out.println("Already exists");
但当我再次键入相同的项目代码时

它不仅打印出声明,还问我名字。 这是我的密码

        String code = //scannerobject;
        for(Item item: items)
            if(item..getCode().equals(code))) {
                System.out.println("Already exists");
                break;
            }
        String itemName = //scannerobject
        item.add(new Item(code,itemName));

.getCode()只是Item类的返回方法

private String code;
public String getCode(){
   return code;
}

有人能给我解释一下吗?
谢谢。

一旦循环终止,您需要检查对象是否存在某些条件

String code = //scannerobject;
int i;
for(i = 0; i < items.size(); i++) {
    if(items.get(i).getCode().equals(code))) {
        System.out.println("Already exists");
        break;
    }
}
if(i == items.size()) {
    String itemName = //scannerobject
    items.add(new Item(code, itemName));
}
String code=//scannerobject;
int i;
对于(i=0;i
如果我理解正确,在添加新项目之前,您需要检查代码是否新鲜。因此,您需要确保循环已经完成,没有中断,并且检查了所有项目代码。为了提高性能,您可能需要考虑二进制树来检查O(log n)中使用的代码。
我们需要检查标志并在for循环之外请求itemName,以便检查每个项目

String code = //scannerobject;
    Boolean flag=true;
    for(Item item: items) {
        if(item..getCode().equals(code))) {
            System.out.println("Already exists");
            flag = false;
            break;
        }

    }
    if(flag){
    String itemName = //scannerobject
        item.setName(itemName);
    }

回答比我的好。@RatredTrips-如果任何项目没有名称,它应该询问名称-对吗?它只检查第一个项目并在循环中导入新项目,这是不正确的,因为您正在循环中添加新项目。@AmirMB-我理解要求为,
如果项目代码不存在,它应该询问名称
。我问了OP这个问题,但他没有回答。但是我可以看出他已经接受了你的答案,这意味着你的理解是正确的。请注意,你的代码将更清晰、更简单,如if(items.stream().anyMatch(item->item.getCode().equals(code))。这将导致相同的问题。我猜如果第三个项目具有相同的代码会怎样?它将询问项目名称两次?否,因为询问名称在循环之外。抱歉,我没有看到您删除
{}
,正确答案与我的答案完全相同。我只是没有在循环中使用花括号,因为它只有一条语句。@对不起,我没有正确检查你的答案,我的错!!
String code = //scannerobject;
    Boolean flag=true;
    for(Item item: items) {
        if(item..getCode().equals(code))) {
            System.out.println("Already exists");
            flag = false;
            break;
        }

    }
    if(flag){
    String itemName = //scannerobject
        item.setName(itemName);
    }