오늘은 조건문과 반복문에 대해서 복습했다. 어렵지 않은 내용이지만 자신의 논리를 코드로 녹이는 과정에서 굉장히 중요한 것이 조건문과 반복문이다.
개인적으로 조건문과 반복문 등의 제어문을 사용할 때, 그리고 코드를 작성할 때 가장 중요한 부분 중 하나가 주석이라고 생각한다.
위에서 얘기한 것처럼 코드는 자신이 생각한 논리를 펼친 것이다. 누구나 알 수 있게 최소한의 코드를 작성하면 가장 좋겠지만 이것은 절대 쉽지 않다.
중첩된 IF문들의 역할이 무엇인지, 현재 접근한 반복문은 왜 도는 것인지 등 자신이 코드를 작성한 근거 또는 이유들을 적어야 협업하는 팀원들이 알 수 있고 작성한 코드의 유지보수를 누구나 쉽게 할 수 있다.
말이 길었지만 주석을 꼼꼼하게 작성하자고 생각하며 조건문 및 반복문을 공부할 때 주의깊게 봤었던 내용들에 대해서 살펴보자.
학교에서 C,C++ 캠프를 진행한 적이 있었다. 처음 코딩을 접하는 신입생들을 대상으로 조건문과 반복문의 실습을 진행해보면 상당수의 학생들이 조건문에서 break를 사용할 수 있다고 생각했었고 보충 수업 때, 이 부분을 강조했던 기억이 있다.
public static void main(String args[]){
for(int i = 0; i< 10; i++){
...
if(...){
...
break;
}
}
}
우선 Break문은 반복문을 탈출할 때 사용된다.
위 코드를 보면, if문 내에 break문이 있기 때문에 처음 접하는 사람들은 if문에서 break문을 쓸 수 있다고 생각할 수도 있다.
하지만 if문의 조건이 True라면 if문 내에 접근할 수 있고, for문 내에 존재하는 if문에 break문이 있기 때문에 break문이 작동하는 것이다.
public static void main(String args[]){
if(...){
...
break;
}
}
따라서 위 코드에서는 break문이 작동하지 않고 오류를 발생시킨다.
Break문과 동일하게 반복문의 흐름을 제어하는 것이 Continue문이다.
Break문은 실행되면 진행되던 반복문을 종료시키지만 Continue문은 종료가 아닌, 증감식을 실행하고 반복문을 계속 진행한다는 차이점이 있다.
Break문과 Continue문 모두 중요하다. 문법적으로 어렵지는 않지만 자신의 논리를 코드로 만드는 과정에서 중요하기 때문에 늘 2가지를 고려하면서 코드를 작성하면 좋을 듯하다.
public static void main(String args[]){
for(int i = 0; i< 10; i ++){
// 초기식, 조건식, 증감식
}
}
public static void main(String args[]){
int int_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 정수 배열
String str_array[] = {"a", "b", "c", "d", "e", "f"}; // 문자열 배열
for(int i : int_array)
{
System.out.print(" " + i);
}
for(String i : str_array){
System.out.print(" " + i);
}
}
향상된 for문은 Python에서 List를 for문으로 사용하는 것과 유사하다.
향상된 for문은 배열 객체를 for문의 로컬변수로 사용하는 것이며, 배열 객체여야 한다.