필수 과제 가이드를 보고 구현해 나아가는 과제인데요,
오늘은 일단 Level 1부터 구현해보자! 라는 저의 목표를 가졌습니다.
Level 1은 App이라는 클래스 안에 모든 기능을 구현했습니다.
Scanner 객체를 활용하여 사용자의 입력을 받으면 입력한 값을 활용하여
계산기능을 구현하는 것 입니다.
level1의 첫 번째 가이드는
이렇게 클래스를 만들고 스캐너를 호출하고,
사용자에게 입력값을 받는 것이였습니다.
level1의 두 번째 가이드는
사칙연산 기호를 입력받아 적합한 타입으로 선언한 변수로 저장하는 것이였습니다.
level1의 세 번째 가이드는
입력받은 숫자와 사칙연산 기호를 사용하여 연산을 진행한 후 결과값을 출력받는것이였습니다.
여기서 if문을 사용할지 switch문을 사용할지 고민하다가 if문을 사용하였습니다.
잘 구현을 하다가 result 부분이 왜 초기화를 시켜야하는지 몰라서 튜터님께 물어보았습니다.
일단 지역변수로 result를 설정을 하고 초기화를 진행해야지 result 값이 재대로 작동이 되기에 구현하는 것이였습니다.
level1의 네 번째 가이드는
반복문을 사용하되, 반복의 종료를 알려주는 “exit” 문자열을 입력하기 전까지 무한으로 계산을 진행할 수 있도록 소스 코드를 수정하는 것입니다.
그래서 while문 안에 if문을 사용하여 break를 사용해서 종료를 하려고 처음에는 구현을 하였습니다.
while(true) {
....숫자 입력받고, 사칙연산 기호 입력받고, 계산한 뒤에 결과값 출력 코드
System.out.println("결과 : " + result); .....
System.out.print("더 계산하시겠습니까? (exit 입력 시 종료) : ");
answer = scanner.nextLine();
if (answer.equals("exit")) {
break
}
}
이렇게 구현을 하였다가 do-While문이 탈출조건이 명확하여서 do-While문으로 바꾸었습니다.
그리고 answer부분도 scanner에서 입력받을 때만 변수를 지정했더니
에러가 발생하여 do 밖에서 지역변수를 만들어서 초기화를 한 뒤에 입력했더니 에러가 나지않았습니다.
이번 과제를 통해서 지역변수의 선언과 초기화가 얼마나 중요한지 알게되었고,
반복문이나, 조건문을 어떤 것을 선택하고 조건을 어떻게 설정하느냐에 따라서 코드가 변경되는 것을 알게되었습니다.
지금은 level2를 구현을 하고있는데 뒷 부분에서 막히는 부분이 있어서
내일 다시 강의를 보면서 공부도 하고, 그래도 막히는 부분은 튜터님께 찾아가서 물어보며 구현하려고 합니다.