ラーフル:
保存及びその和所与のアレイ内の2つの整数のゼロに等しい配列を印刷しようとしています。その合計値がゼロに等しいいかなる二つの整数がない場合でも、ループを終了し、「その合計がゼロである何の二つの整数はありません」は、印刷することができません。私はこの問題を解決する方法を教えてください。
public static void main(String[] args) {
int[] origArr = { 1, 2, 3, -6, 8, 4 };
for (int i = 0; i < origArr.length; i++) {
int firstNumber = origArr[i];
for (int j = i + 1; j < origArr.length; j++) {
int secondNumber = origArr[j];
if (firstNumber + secondNumber == 0) {
int[] newArr = new int[2];
newArr[0] = firstNumber;
newArr[1] = secondNumber;
System.out.println(Arrays.toString(newArr));
}
else {
System.out.println("There are no two integers whose sum is zero ");
}
}
}
}
ときの条件が満たされていない「の場合」、システムが長いループが反復されるようsopln複数回印刷しています。
JMON:
あなたの条件に合致する整数のないカップルが存在しない場合は、その手段は、あなたはすでにあなたの配列内のすべての可能な組み合わせをチェックしています。
あなたはすべての組み合わせをチェックしている場合、それは両方のループが終了されることを意味します。
「解無し」プリントは、二つのループの後に行われるべきです。あなたはそれを印刷したりしないように必要がある場合に知ってするには、ブール値を使用することができます。任意のマッチングの組み合わせが発見されたときにこれをtrueに設定します:
public static void main(String[] args) {
int[] origArr = { 1, 2, 3, -6, 8, 4 };
boolean solutionFound = false;
for (int i = 0; i < origArr.length-1; i++) {
int firstNumber = origArr[i];
for (int j = i + 1; j < origArr.length; j++) {
int secondNumber = origArr[j];
if (firstNumber + secondNumber == 0) {
// set the flag to true
solutionFound = true;
System.out.println(firstNumber + ", " + secondNumber);
}
}
}
// check the flag to see if a solution was found
if (!solutionFound) {
System.out.println("There are no two integers whose sum is zero ");
}
}