Java 制作一个程序,根据用户的要求打印从x到y的数字

Java 制作一个程序,根据用户的要求打印从x到y的数字,java,for-loop,java.util.scanner,Java,For Loop,Java.util.scanner,我是Java新手抱歉,我必须制作一个程序,在这个程序中,它会询问用户两个数字,从这两个数字中取可以除以3的间隔,然后求平均值 我只专注于让它打印所有的数字,因为我正试图一步一步地走 我试过两件事 在第一个代码中,它要求两个数字,但不打印任何内容 Scanner scanner = new Scanner (System.in); double b = scanner.nextDouble(); for ( double a = scanner.nextDouble() ; a <=

我是Java新手抱歉,我必须制作一个程序,在这个程序中,它会询问用户两个数字,从这两个数字中取可以除以3的间隔,然后求平均值

我只专注于让它打印所有的数字,因为我正试图一步一步地走

我试过两件事

在第一个代码中,它要求两个数字,但不打印任何内容

Scanner scanner = new Scanner (System.in);

double b = scanner.nextDouble();
  
for ( double a = scanner.nextDouble() ; a <= b; a++)
{
    System.out.println(a);
}
Scanner Scanner=新的扫描仪(System.in);
double b=scanner.nextDouble();

对于(double a=scanner.nextDouble();a您需要使用
a
的值初始化循环计数器,并使循环迭代直到
b
的值,如下所示:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int count = 0;
        double sum = 0;
        for (int i = a; i <= b; i++) {
            if (i % 3 == 0) {
                System.out.println(i);
                sum += i;
                count++;
            }
        }
        System.out.println("Average: " + sum / count);
    }
}
-或-

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double a = scanner.nextDouble();
        double b = scanner.nextDouble();
        int count = 0;
        double sum = 0;
        for (double i = a; i <= b; i++) {
            if (i % 3 == 0) {
                System.out.println(i);
                sum += i;
                count++;
            }
        }
        System.out.println("Average: " + sum / count);
    }
}

您需要使用
a
的值初始化循环计数器,并使循环迭代直到
b
的值,如下所示:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int count = 0;
        double sum = 0;
        for (int i = a; i <= b; i++) {
            if (i % 3 == 0) {
                System.out.println(i);
                sum += i;
                count++;
            }
        }
        System.out.println("Average: " + sum / count);
    }
}
-或-

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double a = scanner.nextDouble();
        double b = scanner.nextDouble();
        int count = 0;
        double sum = 0;
        for (double i = a; i <= b; i++) {
            if (i % 3 == 0) {
                System.out.println(i);
                sum += i;
                count++;
            }
        }
        System.out.println("Average: " + sum / count);
    }
}

我建议使用int而不是double。我使用double是因为有些输出可能是分数(因为它必须被3除,然后对所有的分数进行平均)。你没有说上面关于分数的任何内容。至于检查除以3的情况,使用int比使用double更容易。
int I=n;如果(i%3==0){…}
很抱歉,我认为这不相关,我将在第二个示例中更改它,您要求三个数字(调用scanner.nextDouble()三次),但您只有两个变量(a和b)。您分配了两次a。我建议使用int而不是double。我使用double是因为某些输出可能是分数(因为它必须除以3,然后对所有的分数进行平均)你没有说任何关于上面的分数的事。至于检查除以3,用int比用double更容易。
inti=n;如果(i%3==0){…}
很抱歉,我没有想到这会有关系,我将在第二个示例中更改它,您要求三个数字(调用scanner.nextDouble()三次),但您只有两个变量(a和b)。您分配了两次a。
2
10
3.0
6.0
9.0
Average: 6.0