繁体   English   中英

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

[英]Interval in Java with user choosing min and max value

我已经在这个问题上坐了3个小时了,我开始感到非常沮丧。 我有一些学校要解决的作业,应该交给老师/学生。 我已经解决了所有问题,除了这个唯一的问题,我根本无法以任何方式来解决问题。

因此,此问题的说明如下:

该方法应询问用户选择最小和最大数字的间隔。 该方法将写入一系列从最小值开始的数字,然后是每7个数字。 它永远不能写一个大于最大值的数字。 澄清(示例):

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大约一个星期,所以请放轻松。 我希望那里有一个善良的灵魂可以为我澄清这一点。 当我了解更多信息后,我将立即向社区回馈。 干杯。

一个简单的方法做,这是变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 );
        }
}

确实没有必要再次检查我是否小于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 + ", ");
    }   
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM