我已经在这个问题上坐了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大约一个星期,所以请放轻松。我希望那里有一个善良的灵魂可以为我澄清这一点。当我了解更多信息后,我将立即向社区回馈。干杯。
答案 0 :(得分:1)
一种简单的方法是将除分配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
答案 1 :(得分:0)
您可以使用以下解决方案:
for(; mini <= maxi ; mini+=7 ) {
if(mini <maxi) {
System.out.print( mini + ", ");
} else {
System.out.print( mini );
}
}
答案 2 :(得分:0)
实际上没有必要再次检查我是否小于最大值。 我想这是出于逗号的缘故,但可以将其简化如下。
for(int i = mini ; i <= maxi; i+=7) {System.out.println(i); }
答案 3 :(得分:0)
您无需更改mini值,就可以保持不变,并在for循环中使用i而不是mini,这应该做很多,此外,您还希望打印最后一个逗号吗?
for(int i = mini ; i <= maxi;i=i+7) {
if(i<maxi) {
System.out.print( i + ", ");
}
}