继承人的代码。
int num[]=new int[5];
int numm[]=new int[5];
for(int x=0;x<num.length;x++){
num[x]=Integer.parseInt(JOptionPane.showInputDialog("Enter Values for num["+(x+1)+"]"));
}
for(int x1=0;x1<num.length;x1++){
num[x1]=Integer.parseInt(JOptionPane.showInputDialog("Enter Values for num1["+(x1+1)+"]"));
}
String tosho="";
for(int a=0;a<num.length;a++){
for(int a1=0;a1<numm.length;a1++){
if(num[0]==numm[0]){
num[0]=numm[0];}
else if(num[1]==numm[1]){
num[1]=numm[1];}
else if(num[2]==numm[2]){
num[2]=numm[2];}
else if(num[3]==numm[3]){
num[3]=numm[3];}
else if(num[4]==numm[4]){
num[4]=numm[4];}
}
}tosho+=(num[0])+""+(num[1])+""+(num[2])+""+(num[3])+""+(num[4]);
JOptionPane.showMessageDialog(null, "both "+tosho+" found in array.");
当我在第一个aary中输入1,2,3,4,5时
然后是第二个数组中的1,22,3,4,5
仍显示2或22,即使它们不相等,,,
答案 0 :(得分:3)
为什么这么长的代码
for(int a=0;a<num.length;a++){
for(int a1=0;a1<numm.length;a1++){
if(num[0]==numm[0]){
num[0]=numm[0];}
else if(num[1]==numm[1]){
num[1]=numm[1];}
else if(num[2]==numm[2]){
num[2]=numm[2];}
else if(num[3]==numm[3]){
num[3]=numm[3];}
else if(num[4]==numm[4]){
num[4]=numm[4];}
}
}
喜欢这个
List <Integer> matchedElements = new ArrayList<Integer>();
for(int a=0;a<num.length;a++){
for(int a1=0;a1<numm.length;a1++){
if(num[a]==numm[a1]){
matchedElements.add(num[a]);
}
}
}
Integer[] mached = matchedElements.toArray(new Integer[matchedElements.size()]);
System.out.println(Arrays.toString(mached));
答案 1 :(得分:2)
你用
开始你的if序列if(num[0]==numm[0]){
num[0]=numm[0];}
然后你正在使用ELSE,这意味着只有在第一个if没有执行时它才会被评估。这意味着在更改数组的第一个元素后,没有其他内容会被更改,因为没有ELSE,因为num [0]将等于numm [0]。删除所有“其他”字样,它应该有效。
答案 2 :(得分:2)
分配错了。你永远不会为numm
变量赋值。
嵌套循环在代码中没有效果。没有使用a
和a1
循环变量。
我添加了一个额外的数组来存储名为sameValues
的相同值并分配相同的值。
int num[]=new int[5]; int numm[]=new int[5]; int sameValues[] = new int[5];
for(int x=0;x<num.length;x++){
num[x]=Integer.parseInt(JOptionPane.showInputDialog("Enter Values for num["+(x+1)+"]"));
}
for(int x1=0;x1<num.length;x1++){
numm[x1]=Integer.parseInt(JOptionPane.showInputDialog("Enter Values for num1["+(x1+1)+"]"));
}
int counter = 0;
String tosho="";
for(int a=0;a<num.length;a++){
for(int a1=0;a1<numm.length;a1++){
if(num[a] == numm[a1]){
sameValues[counter] = num[a];
counter++;
}
}
}
for(int x=0;x<counter ;x++){
tosho+=(num[x]) + " ";
}
答案 3 :(得分:2)
num[x1]=Integer.parseInt(JOptionPane.showInputDialog("Enter Values for num1["+(x1+1)+"]"));
也许numm[x1]
?
您可以使用此代码填充tosho
:
String tosho="";
for(int a=0;a<num.length;a++) {
if(num[a]==numm[a]) {
tosho+=num[a]+",";
}
}
答案 4 :(得分:2)
这两个嵌套循环
for(int a=0;a<num.length;a++){
for(int a1=0;a1<numm.length;a1++){
...
没用。
您没有以任何方式使用变量a
和a1
。
相反,您可以简单地将表单0迭代到数组长度,并检查具有相同索引的元素是否相等。