【发布时间】:2017-02-16 10:00:05
【问题描述】:
所以基本上我在编程中遇到了一种情况,我需要让程序查看数组的一部分是否等于数组的任何其他部分。
例如,如果我有一个名为 array[5] 的数组,并且我需要查看 array[0] 是否等于数组的任何其他部分,我该怎么做?当然假设我从用户那里得到输入,我必须看看用户是否输入了相同的数字。
这是我现实生活中的例子,我遇到的这个问题发生在 isUnique 方法中:
import java.util.Scanner;
public class Week06_NelsonPimentel_Assignment {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] validnum;
int i = 0;
validnum = new int[5];
boolean isvalid;
boolean isunique;
System.out.println("Please enter a number between 50 and 100");
while (i < validnum.length) {
validnum[i] = input.nextInt();
if (validnum[i] <= 101 && validnum[i] >= 49) {
isvalid = isValid(validnum[i]);
if (i > 0) {
isunique = isUnique(validnum[i], validnum[i]);
}
i++;
} else {
System.out.println("Invalid number***");
}
}
}
static boolean isValid(int a) {
boolean b = true;
System.out.println("valid");
return b;
}
static boolean isUnique(int a, int b) {
boolean yes;
int i;
if (a == b) {
System.out.println("This is not a unique number");
yes = false;
}
else {
System.out.println("This is a unique number!");
yes = true;
}
return yes;
}
}
【问题讨论】:
-
isunique = isUnique(validnum[i], validnum[i]);将导致 isunique 始终为true。 -
嗯,您的代码令人困惑,由于某种原因,
isValid总是返回true。 -
所以我将 isUnique(validnum[i], validnum[i]) 切换为 isUnique(validnum[i], validnum),这是否会使 validnum 引用所有值,而不仅仅是一个?