我是Java
的新手,这是我第一次尝试编写程序:我需要写一个程序,打印所有较小的正整数的和大于1000,除以3或5。这是我(糟糕的)尝试。编译后,它只是接收数字并显示它们:
import java.util.Scanner;
public class ex1 {
public static void main(String[] args) {
int num=1;
int count = 1;
while (count <=1000) {
if (count%3==0|count%5==0){
count = count+num;
count++;
}
}
System.out.println(count);
}
}
如果你使用了一段时间,我想你不知道for循环,所以我会避免使用它。
您的代码应该:
- 在任何数字之前,您的初始总和为0
- 对1到1000之间的值进行迭代(即遍历值)
- 如果这个值可以被3或5整除,就把它加到一个和上
- 打印总额
点1):
int sum = 0;
点2):
int value = 1;
while (value <= 1000) {
//do point 3
value++;
}
点3):
if ((value%3==0) || (value%5==0)) {
sum = sum + value;
}
点4):
System.out.println(sum);
综合起来:
int sum = 0;
int value = 1;
while (value <= 1000) {
if ((value%3==0) || (value%5==0)) {
sum = sum + value;
}
value++;
}
System.out.println(sum);
您的主要错误是对while条件的总和和值检查都使用count。将单管误用为或也是一个错误。
希望这能帮助
public class Test {
public static void main(String[] args) {
int num=1;
int sum=0;
while (num <=1000) {
if (num%3==0||num%5==0){
sum = sum +num;
}
num++;
}
System.out.println(sum);
}
}
您已将count++
放入if块中。这意味着,如果这个数字可以被3或5整除,那么你就是在增加count
。把它放在if块的外面。我把你的代码重写如下-
import java.util.Scanner;
public class ex1 {
public static void main(String[] args) {
int sum = 0;
int count = 1;
while (count <=1000) {
if (count%3==0||count%5==0){
sum = sum + count;
}
count++;
}
System.out.println(sum);
}
}