이 부분은 자바에는 맞지 않는 조건도 있다. 요다 표기법이라고 해서 인수의 순서를 바꿔서 버그를 피하려고 하는 표기법이 있다. 여기서는 다루지 않겠다.
ex) if(length > 10) → if(10 < length)이런식으로 바꿔서 쓰는것.
이 다음부터 다루도록 하겠다. if-else
조건을 사용함에 있어서 부정 보다는 긍정을 사용해라.
그리고 간단한 것을 먼저 처리하라
그리고 더 흥미롭고 확실한 것을 먼저 다뤄라.
머릿속으로 생각하는 과정에 있어서 if 조건문이 나에게 입력이 되면 머릿속으로 만약 이게 !@#라면~ 이 생각하기 쉽지 !@#이 아니라면~ 하고 접근을 하게 되면 !@#안에 들어간 수식어가 머릿속에 생각들면서 언제 나오려나 하는 생각이 들기 마련이다.
이것도 뭔가 간결하게 해줄 수 있고 아주 좋은 방법이다.
그렇지만 예시를 들자면,
boolean isTrue = (a > b) ? true : false;
이정도의 길이라면 가독성 좋고 다 좋다.
조건도 별로 까다롭지 않고 간결하게 줄일 수 있으니까 말이다.
반면에 어떠한 저런 변수에 대입을 해줘야 하는 연산이 복잡해서 삼항연산자가 늘어질 경우에는
기존의 if-else
구문이 가독성이 좋을 수 있다.
뭐가 됐든 줄 수를 최소화 하는일보다 남이 읽었을 때 코드를 읽고 이해하는 시간을 최소화 하는 목적으로 코드를 짜는 것이 더 중요하다.
나는 보통 do-while을 쓰지 않고 while을 쓴다. do-while은 무조건 1번은 수행하게 된다.
다른 반복문은 위에서 아래로 진행하게 되는데 do-while은 조건에 따라 역순으로 총 두번을 읽어서 조건을 수행하는 것이 된다.
이 부분은 어차피 잘 쓰지를 않아서 많이 생각드는 와닿는 그런 것은 없었다.
그냥 while을 쓰자.😅
이것도 if문에서 좀 많이 발생하는데 if-else
안에 또 다른 if문이 들어가고 그렇게 되면 조건을 왔다갔다 하면서 파악해서 코드를 읽으면서 내려가니까 헷갈릴 수 있다. 아까 포스팅한 Enum도 그러했다.
중첩이 쌓이는 과정은 처음 짠 로직에서 다른 프로그래머가 코드를 삽입했을 경우가 늘어나는 것인데 중간에 끼워넣는 입장에서 조금 리팩토링을 진행하면서 코드를 보완해야 나중에 다른 사람들이 접근할 때 잘 받아들일 수 있을 것이다.
이쯤에서 생각이 드는 것은 당장의 일에 쪼들려서 여유 없이 코드를 삽입하는 것이 아니라 좀 큰 관점에서 바라보면서 작업을 해야겠다는 생각이 든다. 그래야 이런 부분에서의 문제도 생각하면서 코드를 넣을 수 있겠다.
if문을 중첩하지 않고 if문 로직을 통과 시키면서 중간에 return을 넣어서 if문을 중첩시키지 않는 방법이다.