间隔 Java,用户选择最小值和最大值

Interval in Java with user choosing min and max value

我已经为这个问题坐了 3 个小时了,我开始感到非常沮丧。我有几项学校作业,我应该解决并提交给 teacher/students。我已经解决了所有问题,除了这个我无法以任何方式解决的问题。

所以,这道题的说明如下:

The method should ask for an interval where the user gets to choose a minimum and maximum number. The method will write a series of numbers that start with the minimum value and then every 7th number. It should never write a number that is greater than the maximum value. To clarify (example):

Min = 26
Max = 57

程序写道:26, 33, 40, 47, 54

这是我的代码:

String minimum, maximum;
    int mini, maxi;

        minimum = JOptionPane.showInputDialog("Insert smallest number");
        mini = Integer.parseInt(minimum);
        maximum = JOptionPane.showInputDialog("Insert biggest number");
        maxi = Integer.parseInt(maximum);
        for(int i = mini ; i <= maxi ; i++ ) {
        if(i<maxi) {
            System.out.print( mini + ", ");
        } else {
            System.out.print( mini );
        }
        mini +=7;

我知道 i <= maxi ; 的作用,但我不知道用什么来代替它。我试图想出一个公式来让它发挥作用,但每次都失败了...我只学习了 Java 大约一个星期,所以请放轻松。我希望那里有一个善良的灵魂可以为我澄清这一点。当我有更多的知识时,我会 return 对社区的帮助。干杯。

一个简单的方法是将 mini 更改为 i 除了 i 的分配,然后将 i++ 更改为 i +=7

for(int i = mini ; i <= maxi; i+=7) {
    if(i<maxi) {
        System.out.print(i + ", ");
    } else {
        System.out.print(i);
    }       
}

输出:

26, 33, 40, 47, 54

您可以使用此解决方案:

 for(; mini <= maxi ; mini+=7 ) {
        if(mini <maxi) {
            System.out.print( mini + ", ");
        } else {
            System.out.print( mini );
        }
}

真的没有必要再次检查 i 是否小于 maxi, 我想这是为了逗号,但可以简化如下。

 for(int i = mini ; i <= maxi; i+=7) {System.out.println(i); }

你不需要更改 mini 值,让它保持原样,并在 for 循环中使用 i 而不是 mini ,就这些就可以了,你还想打印最后一个逗号吗?

for(int i = mini ; i <= maxi;i=i+7) {
    if(i<maxi) {
        System.out.print( i + ", ");
    }   
}