RedYoel:
私は「それを実践」の問題を解決しようとしている、と私はそれにすべてのテストに合格することができませんよ。
問題は:
2つの文字列の配列を取り込み、それらが等しい場合はtrueを返しイコールというメソッドを書きます。両方の配列は同じ長さを有し、各インデックスに等価文字列値を含む場合には、です。
私は、入力に次のコードが、テストを試してみましたequals({"a", "b", "a", "c", "a", "d", "a", "e", "a"}, {"x", "b", "a", "c", "a", "d", "a", "e", "a"})
が、それは動作しません。
public static boolean equals (String [] txt1, String [] txt2){
boolean result=false;
if(txt1.length==txt2.length){
for(int i=0; i<txt1.length; i++){
if(txt1[i].equals(txt2[i])){
result = true;
}
else {
result = false;
}
}
}
else {
return false;
}
return result;
}
期待リターン:false
私のリターン:true
UnholySheep:
ループ内で問題の嘘:
for(int i=0; i<txt1.length; i++){
if(txt1[i].equals(txt2[i])){
result = true;
}
else {
result = false;
}
}
if
それは以前よりも優先されますと最後の要素は、両方の配列に同じであれば、あなたのコードのみのチェックはとても本質的には、一つ一つの要素に対して実行されますresult = false;
出現を。
正しい解決策はすぐに停止し、復帰することでfalse
、単一の要素が異なるたら:
for(int i=0; i<txt1.length; i++){
if(txt1[i].equals(txt2[i])){
result = true;
}
else {
return false;
}
}