내 프로그램이 마지막 "else"문으로 건너 뛰는 이유를 알 수 없습니다. 이것은 다음과 같은 코드이기도합니다. 방금 Java를 처음 시작했기 때문에 조금 거칠었습니다. 다른 것이 있으면 그냥 물어보십시오!내 if, else 문에 문제가 발생했습니다.
우리가 작성해야하는 프로그램은 사물함 조합을 얻는 데 사용됩니다. 나는 내가 원하는 콤비네이션을 하드 코딩했고 프로그램은 12-34-56을 입력 할 때 작동한다. 그러나 12-12-34 또는 다른 변형을 입력하면 자동으로 프로그램 끝으로 건너 뛰고 결과가 아니더라도 일치하지 않음이라고 표시됩니다. 대신 그것은 "2 개의 숫자가 서로 중복되어 있다는 것을 추측해야합니다 .2 개의 숫자가 조합에 나타납니다."
다른 것이 필요한 경우 알려주세요. 감사합니다. 좋은 하루 되세요! (또한 나는이 모든 것을 할 자바와 BlueJ를 사용하고 있습니다.) 마지막 두 다른-경우-조건 두 가지 문제
import java.util.*;
public class Combination
{
public static void main(String[] args) {
int lock1 = 12;
int lock2 = 34;
int lock3 = 56;
Scanner input = new Scanner(System.in);
System.out.print("Enter first two digits: ");
int guess1 = input.nextInt();
System.out.print("Enter second two digits: ");
int guess2 = input.nextInt();
System.out.print("Enter last two digits: ");
int guess3 = input.nextInt();
if (lock1 == guess1 && lock2 == guess2 && lock3 == guess3) {
System.out.print("Exact Match! Locker Unlocked");
}
else if (lock1 == guess1 && lock2 == guess3 && lock3 == guess2
|| lock1 == guess2 && lock2 == guess3 && lock3 == guess1
|| lock1 == guess2 && lock2 == guess1 && lock3 == guess3
|| lock1 == guess3 && lock2 == guess2 && lock3 == guess1
|| lock1 == guess3 && lock2 == guess1 && lock3 == guess2)
{
System.out.println("All numbers match but not in the correct order");
}
else if (lock1 == guess1 && lock2 == guess1 && lock3 == guess1
|| lock1 == guess2 && lock2 == guess2 && lock3 == guess2
|| lock1 == guess3 && lock2 == guess3 && lock3 == guess3) {
System.out.println("Guess contains 3 duplicate numbers.");
System.out.println("One number in the guess appears in the combination.");
}
else if (lock1 == guess1 && lock2 == guess1 && lock3 == guess2
|| lock1 == guess1 && lock2 == guess1 && lock3 == guess3
|| lock1 == guess2 && lock2 == guess2 && lock3 == guess3
|| lock1 == guess2 && lock2 == guess2 && lock3 == guess1
|| lock1 == guess3 && lock2 == guess3 && lock3 == guess2
|| lock1 == guess3 && lock2 == guess3 && lock3 == guess1
|| lock1 == guess2 && lock2 == guess1 && lock3 == guess1
|| lock1 == guess3 && lock2 == guess1 && lock3 == guess1
|| lock1 == guess3 && lock2 == guess2 && lock3 == guess2
|| lock1 == guess1 && lock2 == guess2 && lock3 == guess2
|| lock1 == guess1 && lock2 == guess3 && lock3 == guess3
|| lock1 == guess2 && lock2 == guess3 && lock3 == guess3) {
System.out.println("2 numbers in the guess are duplicates of each other." +
"2 numbers guess appear in the combination.");
}
else{
System.out.println("Sorry not a match");
}
}
}
부울 논리가 원하는대로 작동하는지 확신합니까? 아마도 괄호가 필요할까요? – bradimus
아 ... 당신은 당신의 논리와 구문에 대해 정말로 재고 할 필요가 있습니다. –
쉬운 :'lock1 == guess2'가 잘못되었습니다. –