이 코드의 작동 방식을 이해할 수 없습니다. 문제는 다음 해에 고유 한 숫자가있는 연도가 발견됩니다.이 부울 배열은 어떻게 작동합니까?
public Main(){
try{
BufferedReader in;
in = new BufferedReader (new InputStreamReader (System.in)); //Used for CCC
String year = (in.readLine());
for(int i = Integer.parseInt(year)+1;; i++){
String f = Integer.toString(i);
boolean [] characters = new boolean[10];
boolean unique = true;
for(int x = 0; x < f.length(); x++){
if (characters[f.charAt(x) - '0']){
unique = false;
break;
}
else{
characters[f.charAt(x)-'0'] = true;
}
}
if (unique){
System.out.println(f);
return;
}
특히 if 문은 어떻게 작동합니까?
if (characters[f.charAt(x) - '0']){
여기서 부울 검사는 무엇입니까? 그들은 모두 거짓으로 디폴트되어서는 안됩니까? 그리고 왜 거기에 '0'이 있습니까? 멍청한 질문에 대해 유감입니다.
중단 점을 설정하거나 코드를 디버그하여 직접 이해하려고 시도 했습니까? –
'모두 기본값이 false가 아니어야합니까? '- 가능 합니다만,''문자 [x]''['.charAt (x) -'0 ']' –
@ cricket_007 나는 시도했다. 그러나 자바에서 꽤 초보자이다. 그래서 나는 디버거를 사용하는 법을 알지 못한다. 나는 그것에 대해 비디오를 볼 것이다. 제안에 감사한다. –