抱歉,如果这是一个错误的地方提出这类问题,但我是一个完整的新手java,我想知道是否有办法使这个更紧凑:
if (PlainFlourUsed <2000)
System.out.println("\n0 Bags of Flour needed");
else if (PlainFlourUsed >= 2000 && PlainFlourUsed < 4000)
System.out.println("\n1 Bag of flour needed");
else if (PlainFlourUsed >= 4000 && PlainFlourUsed< 6000)
System.out.println("\n2 Bag's of flour needed");
else if (PlainFlourUsed >= 6000 && PlainFlourUsed < 8000)
System.out.println("\n3 Bag's of flour needed");
else if (PlainFlourUsed >= 8000 && PlainFlourUsed< 10000)
System.out.println("\n4 Bag's of flour needed");
else if (PlainFlourUsed >= 10000 && PlainFlourUsed < 12000)
System.out.println("\n5 Bag's of flour needed");
else if (PlainFlourUsed >= 12000 && PlainFlourUsed< 14000)
System.out.println("\n6 Bag's of flour needed");
else if (PlainFlourUsed >= 14000 && PlainFlourUsed < 16000)
System.out.println("\n7 Bag's of flour needed");
else if (PlainFlourUsed >= 16000 && PlainFlourUsed< 18000)
System.out.println("\n8 Bag's of flour needed");
else if (PlainFlourUsed >= 20000 && PlainFlourUsed < 22000)
System.out.println("\n9 Bag's of flour needed");
else if (PlainFlourUsed >= 24000 && PlainFlourUsed < 26000)
System.out.println("\n10 Bag's of flour needed");
编辑但使用它会给我一个分区,但我只能展示一袋面粉,如1或2.我不能有1.125的一袋面粉。只有整袋面粉
答案 0 :(得分:18)
这是简单的数学:
int bags = PlainFlourUsed / 2000;
System.out.println("\n" + bags + " Bags of Flour needed");
答案 1 :(得分:2)
你可以做一些简单的事情
System.out.println("\n" + (int) PlainFlourUsed/2000+" Bags of Flour needed");
答案 2 :(得分:1)
如果您想压缩代码并仅在需要时使用复数,我建议:
int n = (int) PlainFlourUsed / 2000;
System.out.println(String.format("\n%d %s of flour used", n, (n == 1 ? "bag" : "bags")));
答案 3 :(得分:0)
@shmosei答案实际上是一种非常好的方式。
但是如果您需要使用所有条件,那么您可以删除所有>=
语句中的else if
条件。
if (PlainFlourUsed <2000)
System.out.println("\n0 Bags of Flour needed");
else if (PlainFlourUsed >= 2000 && PlainFlourUsed < 4000)
System.out.println("\n1 Bag of flour needed");
else if (PlainFlourUsed >= 4000 && PlainFlourUsed< 6000)
System.out.println("\n2 Bag's of flour needed");
else if (PlainFlourUsed >= 6000 && PlainFlourUsed < 8000)
System.out.println("\n3 Bag's of flour needed");
...
可以更改为
if (PlainFlourUsed <2000)
System.out.println("\n0 Bags of Flour needed");
else if (PlainFlourUsed < 4000)
System.out.println("\n1 Bag of flour needed");
else if (PlainFlourUsed< 6000)
System.out.println("\n2 Bag's of flour needed");
else if (PlainFlourUsed < 8000)
System.out.println("\n3 Bag's of flour needed");
这是因为如果该值小于2000,那么无论如何条件都会先进入内部。所以不需要在else if中再次检查&gt; = 2000。