JAVA 웹개발 과정 국비 4일차 정리

4일차

※ 배우는 과정이므로 정확하지 않을 수 있습니다.
잘못된 점은 알려주시면 수정하도록 하겠습니다!


1. System.out.printf();

서식을 갖춘 출력법.

기본 출력을 배우면서, printf 함수는 배우지 않아서 궁금했었다.
자바의 정석에서는 printf 함수를 처음부터 썼기 때문이다.
강사님께서는 어차피 concole 출력은 나중에 가면 쓰지 않기 때문에 그다지 걱정할 필요는 없을 것이라고 하셨다.
자바의 정석을 공부할 때 printf 함수가 너무 어려웠는데, 조금 안심이 되었다.
(그렇다고 공부를 안할꺼라는 것은 아님)

printf 함수는 print나 println 함수와는 달리 형식을 갖춰 출력할 수 있는 함수이다.
System.out.printf("%.2f", avg)

  • .2를 써줌으로써 소수점 2번째 자리까지만 출력을 지정할 수 있다.
  • ,(콤마) 뒤에 출력해줄 변수를 지정한다.
  • 줄을 바꾸지 않으므로 \n을 따로 입력해주어야한다.

2. sc.nextInt()

숫자로 입력 받는 방법
Buffer 메모리에서 숫자만 꺼내온다.

Integer.parseInt(sc.nextLine());과 동일한 작용을 한다.
그러나 Buffer 관련 문제가 있어 사용하는데 제약이 있다.

nextInt 뒤 nextInt는 문제가 없지만, 만약 nextInt 뒤에 nextLine을 쓰는 경우에는 문제가 될 수 있다.
예를 들면 사용자가 123엔터 « 값을 입력한다고 치자.
buffer에는 123\r\n이 입력이 될 것이다.
첫 nextInt는 123을 가져가고, 뒤의 nextLine은 남은 \r\n을 가져가기 때문에 뒤의 nextLine은 제대로 동작하지 않을 것이다.

이러한 문제를 완벽히 제어할 수 없을 것 같다면 그냥 nextLine()을 쓰자.

3. 제어문

1) if / else if / else : 조건 분기문

2) while (초기값 / 조건문 / 증감문)

제어문은 이해하는 부분이 거의 다여서 정리할 것이 딱히 없다.
초기값을 왜 지정해주어야 하는지에 대해서 배웠는데, 흥미로웠다.

3) 초기값은 왜 지정해주어야할까?

운영체제가 쓰던 값(쓰레기값)이 들어있기 때문

기본 자료형은 stack 메모리에 저장되는데, 문제는 이 stack 메모리를 운영체제도 쓴다는 것이다.
따라서 우리가 어떤 변수를 선언할 때, 운영체제가 쓰고 버린 값이 들어있는 채로 쓰게 되는데 이 것을 피하기 위해 초기화를 해주는 것이다.

오늘 수업은 어떤 지식을 배웠다기보다는 제어문을 이해하고 사용해보는데 초점을 두었던 것 같다. 정리한 글이 짧아 조금 아쉽지만 많은 예제를 풀어보았으니 만족!

댓글남기기