[英]How do i prevent a nested for loop from duplicating answers in java
我必须创建一个数组并获取该数组的值,以确定数组中的哪些数字间隔两个数字。 我认为那部分出来但我的输出是重复的,我需要它不要那样做。 如何防止重复答案。
这是我的代码:
import java.util.Scanner;
public class Separation {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x = scan.nextInt();
int y = scan.nextInt();
int[] values = new int[y];
for(int j = 0; j < values.length; j++){
values[j] = scan.nextInt();
for(int i = 0; i < values.length; i ++){
for(int k = 0; k < values.length; k++){
if(values[i] == (values[k]-x))
System.out.print(values[k] + "," + values[i] + " -- ");
}
}
}
}
}
你的缩进隐藏了这个问题。 在开始第二个循环之前,需要终止初始化for循环。 我还通过稍微修改第3个for循环来删除了一些冗余比较,但是您可能不需要对程序进行更改。 另外,我强烈建议使用IDE,在编写代码时会自动缩进代码。 它会捕获这些类型的错误,因为如果你用大括号犯了错误,它会以意想不到的方式缩进你的代码:
import java.util.Random;
import java.util.Scanner;
public class Separation {
public static void main(String[] args) {
//Random r = new Random();
Scanner scan = new Scanner(System.in);
System.out.print("Enter k");
int x = scan.nextInt();
System.out.print("Enter number of values:");
int y = scan.nextInt();
int[] values = new int[y];
for (int j = 0; j < values.length; j++) {
values[j] = scan.nextInt();
}
for (int i = 0; i < values.length; i++) {
for (int k = i+0; k < values.length; k++) {
if (Math.abs((values[i] - values[k]))==x)
System.out.print(values[k] + "," + values[i] + " -- ");
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.