자바에서의 반복문은 자바스크립트의 반복문과 매우 유사한 형태를 띄고 있습니다. 다만 for-of문 사용법에 그 차이점을 볼 수 있겠습니다.
- 자바스크립트의 for-of문
const fruits = ['apple', 'banana', 'cherry']; for (const fruit of fruits) { console.log(fruit); }
- 자바의 for-of문
String[] fruits = {"apple", "banana", "cherry"}; for (String fruit : fruits) { System.out.println(fruit); }
자바스크립트에서는 단순한 for문 뿐만 아니라 데이터 대상이 배열 및 객체인지 여부에 따라 for-of, for-in문이 존재하는데요.
자바에서는 enhanced-for문이라는 for문 형식을 지원합니다. 그래서 해당 for문을 이용해 대상의 길이를 모르더라도 한 번 순회할 수 있고, 코드의 가독성을 용이하게 할 수 있다는 장점이 있죠.
String[] fruits = {"apple", "banana", "cherry"}; //왼쪽은 배열 안 요소의 상태, 오른쪽은 배열을 의미합니다. for (String fruit : fruits) { System.out.println(fruit); }
클래그 제어 루프(flag controll loop)란 반복문을 boolean 타입으로 선언한 값의 반전을 이용해 제어하는 루프로, 개발자가 기대했던 값과 기대 외의 값에 대한 처리를 할 때 유용하게 사용됩니다.
물론 이 개념은 자바 뿐만 아니라 모든 언어에서 유용하게 사용 가능한 알고리즘 중 하나라고도 할 수 있습니다.
// 수정 (modifySchedule) 메서드를 실행하는 동안 최종 등록 구간에 나타나는 메서드로, 기본적으로 입력값에 대한 유효성 검사 및 Y 및 N 중 하나의 입력값에 따라 true 및 false를 반환 static boolean confirm() { //while문을 true로 설정 while (true) { String userInput = sc.next(); // 사용자의 입력값이 개발자의 기대값과 맞지 않을 경우 while문을 반복 if (userInput.length() > 1 || userInput.charAt(0) != 'Y' && userInput.charAt(0) != 'N') { System.out.print("올바른 입력이 아닙니다. Y 또는 N을 입력해 주세요.\n----------------------------------------"); continue; } // 기대값에 맞을 경우 break로 while문을 빠져나온 후 마지막 줄의 true를 반환 if (userInput.charAt(0) == 'Y') { break; // 그냥 리턴하여 메서드 종료 // 만약 기대값과 맞지 않을 경우 false를 return } else if (userInput.charAt(0) == 'N') { return false; // Y와 N 이외의 값 입력에 대한 경우 while문 반복 } else { System.out.println("올바른 입력이 아닙니다. Y 또는 N을 입력해 주세요.\n----------------------------------------"); continue; } }