我正在尝试编写一个小程序,该程序在数组中打印出不同的数字。例如,如果用户输入1,1,3,5,7,4,3,则该程序将仅打印出1,3,5,7,4。
我在else if函数中遇到错误checkDuplicate
。
到目前为止,这是我的代码:
import javax.swing.JOptionPane;
public static void main(String[] args) {
int[] array = new int[10];
for (int i=0; i<array.length;i++) {
array[i] = Integer.parseInt(JOptionPane.showInputDialog("Please enter"
+ "an integer:"));
}
checkDuplicate (array);
}
public static int checkDuplicate(int array []) {
for (int i = 0; i < array.length; i++) {
boolean found = false;
for (int j = 0; j < i; j++)
if (array[i] == array[j]) {
found = true;
break;
}
if (!found)
System.out.println(array[i]);
}
return 1;
}
}
首先,“ else if
”语句是不正确的,因为您没有为if提供任何条件(如果需要if,则需要编写“ if (condition) ...
”)。
其次,您不能 在内部 循环中决定是否应打印一个值:代码的工作方式是 为每个 不同于array [i]的 值array [j]
编写一个值array [i]!
第三:内部循环只需要从0到外部索引i-1
:对于每个元素,您只需确定它是否是第一个出现(即,是否有相同的值出现在任何先前的索引上)。如果是这样,请打印出来,否则请忽略它。
适当的实现CheckDuplicate()
是:
public static void checkDuplicate(int array []) {
for (int i = 0; i < array.length; i++) {
boolean found = false;
for (int j = 0; j < i; j++)
if (array[i] == array[j]) {
found = true;
break;
}
if (!found)
System.out.println(array[i]);
}
}
但是,当然,Set
对于更大的数组,某种方式会更加高效…
编辑:当然, mmyers
(请参见评论)是正确的,因为既然CheckDuplicate()
不返回任何值,它应该具有返回类型void
(而不是int
)。我在上面的代码中纠正了这个问题…
问题内容: 我正在尝试用Java格式化两个数组以打印如下内容: 我正在使用以下代码: 但是我得到的是格式不正确的结果: 如何将所有列直接排列在顶部标题的下面? 有没有更好的方法可以做到这一点? 问题答案: 您应该看一下格式: 这将提供15个插槽,并在需要时在其中填充空格。 但是,我注意到您没有对数字进行右对齐,在这种情况下,您需要在书本字段中左对齐: 这是一个工作片段示例: 导致:
有人能帮忙吗?选择2不起作用。当用户输入员工姓名时,它应该显示员工ID,但当用户输入姓名时,不会打印任何内容。代码没有错误。 //搜索员工数据公共静态无效搜索(string[]emplNames,int[]emplid){
运行:
问题内容: 我不知道如何将可变数量的变量传递给函数。我认为传入一个数组并使用数组键作为变量名可以代替将额外的变量传递给函数的需要,并且它起作用了(我敢肯定有一种更好的方法可以做到这一点,欢迎提出建议)。但是,我似乎无法从函数内部的数组中获取键。 数组: 函数内部: 函数内部的代码重新发出警告:为foreach()提供了无效的参数。如何将键从阵列中拉出? 问题答案: 您可以使用PHP的array_k
问题内容: 当我打印一个numpy数组时,我得到了一个截断的表示形式,但是我想要完整的数组。 有什么办法吗? 例子: 问题答案: 用途
我有两个2D数组,都是3x3。 或者更多地澄清一下我想做什么: 所以第一行是: 并对每一行进行相应的处理。