我如何表示布尔类型作为它的相对整数?

时间:2016-05-21 15:25:48

标签: java

我正在练习我的Java并开发一个程序,该程序将1999的所有整数相加,这些整数是3的倍数或{{{}的倍数1}}。

这是我到目前为止所写的内容:

5

现在当我编译它时,我得到的只是1到999的每个数字的真和假。我知道这是因为我的public class MultiplesOfThreeAndFive { public static void main(String[] args) { //For a number to be a multiple, i % number equals 0. MultiplesOfThreeAndFive m = new MultiplesOfThreeAndFive(); for (int i = 1; i < 1000; i++){ System.out.println(m.checkIfMult(i)); } } public boolean checkIfMult(int i){ return (i % 3 == 0 || i % 5 == 0); } } 方法的方法返回类型是checkIfMult。< / p>

我无法总结真假,所以我只想获取那些在列表中显示为真的数字。

编辑:

按照汤姆所说的那样......我把它添加到我的主要方法中:

boolean

2 个答案:

答案 0 :(得分:2)

我的紧凑型解决方案呢?

IntStream.range(0, 1000).filter(i -> i % 3== 0 || i % 5 == 0).sum();

根据您的想法,创建sum变量并在for语句中添加以下代码:

if (m.checkIfMult(i)) sum += i;

答案 1 :(得分:1)

你可以保持这样的运行总额:

1

旁注:您可以在此示例中将public class MultiplesOfThreeAndFive { public static void main(String[] args) { //For a number to be a multiple, i % number equals 0. MultiplesOfThreeAndFive m = new MultiplesOfThreeAndFive(); int sum = 0; for (int i = 1; i < 1000; i++){ if (m.checkIfMult(i)) { sum = sum + i; } } System.out.println("Sum is: " + sum); } public boolean checkIfMult(int i){ return (i % 3 == 0 || i % 5 == 0); } } 方法设为静态。如果这样做,那么您不需要创建checkIfMult类的实例。