带有for循环的Java面试任务
我在一次工作面试中遇到了这个问题,我想知道其他人会如何解决这个问题。问题是有一个类拍卖,你不能以任何方式修改它。输出必须始终如下所示(商品只能销售一次) 没有提供Item类实现,因此我可以编写自己的实现。此外,输出必须从拍卖类内部打印。我要求用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
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);
}
}