Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有for循环的Java面试任务_Java_For Loop - Fatal编程技术网

带有for循环的Java面试任务

带有for循环的Java面试任务,java,for-loop,Java,For Loop,我在一次工作面试中遇到了这个问题,我想知道其他人会如何解决这个问题。问题是有一个类拍卖,你不能以任何方式修改它。输出必须始终如下所示(商品只能销售一次) 没有提供Item类实现,因此我可以编写自己的实现。此外,输出必须从拍卖类内部打印。我要求用Java代码解决这个问题 public class Auction { public static void main(String[] args) { for (int i = 0; i < (Math.random() * 100

我在一次工作面试中遇到了这个问题,我想知道其他人会如何解决这个问题。问题是有一个类拍卖,你不能以任何方式修改它。输出必须始终如下所示(商品只能销售一次)

没有提供Item类实现,因此我可以编写自己的实现。此外,输出必须从拍卖类内部打印。我要求用Java代码解决这个问题

public class Auction {

  public static void main(String[] args) {

    for (int i = 0; i < (Math.random() * 100) + 2; i++) 
      if (Item.sell())
        System.out.println("ITEM #1: SOLD!");

    for (int i = 0; i < (Math.random() * 100) + 2; i++)
      if (Item.sell()) 
        System.out.println("ITEM #2: SOLD!");

    System.out.println("END");
  }
}
公开类拍卖{
公共静态void main(字符串[]args){
对于(int i=0;i<(Math.random()*100)+2;i++)
if(Item.sell())
System.out.println(“第1项:售出!”);
对于(int i=0;i<(Math.random()*100)+2;i++)
if(Item.sell())
System.out.println(“第2项:售出!”);
系统输出打印项次(“结束”);
}
}

这里有一个不使用
系统的解决方案。退出

public class Item {
  private static int numItems = 2;

  public static boolean sell() {
    if(numItems > 0) {
      numItems -= 2;
      System.out.println("ITEM #1: SOLD!");
      System.out.println("ITEM #2: SOLD!");
    }
    return false;
  }
}

另外,不要为这家公司工作,这个问题很愚蠢。

我想到的最简单的事

public class Item {
    public static boolean sell() {
        System.out.println("ITEM #1: SOLD!");
        System.out.println("ITEM #2: SOLD!");
        System.out.println("END");
        System.exit(0);
    }
}

问题是什么?你试过什么?那我们应该修改什么?你的代码只包含拍卖类,不应该修改。我感觉这个问题与同步有关(在
项目
中),但除此之外…@GaborSch非常感谢你的帮助,我能够解决它。它可能不是干净的解决方案,但它是有效的:)实际上代替了
numItems
可能是普通的
boolean
标志,在第一次调用后被更改。@MarcinPietraszek I试图尽可能接近其预期目的
public class Item {
    public static boolean sell() {
        System.out.println("ITEM #1: SOLD!");
        System.out.println("ITEM #2: SOLD!");
        System.out.println("END");
        System.exit(0);
    }
}