오늘은 이것저것 진도를 많이(?)나갔다. 

Scanner는 키보드의 입력을 받게 해준다.

위에 import java.util.Scanner;이 들어가 있어야 된다. 

사용자의 이름, 나이, 성별, 키를 입력받아 표시하도록 해보았다.

키보드로 입력을 받아 화면에 표시하는 것을 배웠다.

마지막에는 sc.close(); 를 꼭 붙여야 함.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0701_Java print문  (0) 2021.07.03
0701개강 첫 날_Java Print문  (0) 2021.07.02

System.out.printf("%x\n", 437);

System.out.printf("%X\n", 437);

%x 와 %X 모두 437을 16진수로 표현하라는 의미. 알파벳을 소문자로, 대문자로 하냐의 차이이다.

System.out.printf("%#X\n", 437);

%X 사이에 붙은 #는 출력된 값이 16진수 임을 표현해주는 값.

System.out.printf("%#8X\n", 437);

8칸을 할당한다.

System.out.printf(%o\n", 10);

%o는 8진수로 값을 표현하라는 의미이다.

System.out.printf("%c\n", '\u0041');

<<문자열(여러 개, 공백가능)을 나타낼 때 큰 따옴표"" 사용>> c는 문자의 의미. 

<<문자(한 개, 공백불가)를 나타낼 때 작은 따옴표'' 사용>>

'\u0041' 은 유니코드의 0041에 해당하는 문자를 나타낸다. 

%c %C는 소문자 대문자의 차이.

 

소문자s는 대문자를 소문자로 바꾸지는 않는다.

System.out.printf("%s\n", "Korea");

대문자S는 소문자를 대문자로 바꿔준다.

System.out.printf("%S\n", "korea);

System.out.printf("%10.3s\n", "korea");

10칸을 할당하고 3개만 표시해라(왼쪽부터)

 

숫자 3개 마다 콤마를 자동으로 붙인다.

System.out.printf("%,d\n", 1234567);

 

System.out.printf("%c %c %c %c %c\n", 'a', 'b', 'b', 'a', 'b');

System.out.printf("%1$c %2$c %2$c %1$c %2$c\n", 'a', 'b');

1$는 뒤에 첫 번째 있는 것을 할당한다는 의미.

따라서 두 문장의 실행값은 같다.

 

위에 문장들을 실행한 결과. 

8진수도 표현해주고 싶어서 #를 넣어보았다.

012 라고 뜸. 아마 이게 8진수로 표현했다는 표시인건가?

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03
0701개강 첫 날_Java Print문  (0) 2021.07.02

7월 1일
쌍용교육센터에서 개강한 국비교육을 듣게 되었다.

첫 날 Zoom수업을 통해 (인원을 나눠서 현장으로 수업을 들으러 간다.)
Java설치와 Eclipse설치를 도와주셨다. Java에 대한 설명과 주로 print문에 대해 배웠다.

아직 public class란 것이 무슨 개념인지 자세히는 모르겠다. (컴퓨터일반관련 공부를 했지만 개념적으로만 그런거구나 하는 정도라서 ...)

print와 printf의 차이를 알아보기 위해 수업 중에 선생님께서 적어본 것들.

\t : Tab키 역할
\n : 출력 후 라인을 넘긴다.
System.out.println("\nSpring"); 은 라인을 넘기고 Spring을 출력 하고 라인을 넘긴다.

숫자 + 문자열 = 문자열 이라고 적어놓은 것은 왜 적어놓은지 모르겠다. 걍 틀린 정보인 것 같음. 아니면 선생님께서 말씀하시는 것을 내가 잘못 받아적었거나.
여기서는 printf(format)을 적용해서 출력해보았다. %는 나머지를 구하는 연산자이고 %d는 decimal 십진법으로 표현하라는 것. 큰따옴표 안에서 연산기능을 하려면 두 개를 적어야 했다.
System.out.printf();와 System.out.format();이 서로 같은 의미라고 하셨다.


이부분은 혼자 다시 notepad를 이용해서 적고 cmd를 이용해서 실행해보았다.

수업시간에 썼던 그대로 class를 정의했었는데 Ex02_printf 로 해놓고 파일이름은 Ex01_printf로 해놔서 자꾸 실행이 안돼고 오류가 떠서 뭐지??? 했다. 선생님께서 cmd를 이용해서 class파일로 바꾼 후 java로 실행하는 것을 초반에 보여주셨었는데, 예전에 혼자 파이썬 공부를 했을 때도 이렇게 실행했고 그냥 혼자 복습하는 거라서 이걸로 해보았다.

중간에 주석을 달아 놓은 것이 뭔가 오류가 있어서 그냥 그 줄을 뺐다.

오류를 고쳐서 java compiler로 class 파일을 만들고 파일이름도 Ex02였던 것을 01로 바꾸고 java로 실행시켜 보았다. 실행 성공~

%f는 소수점을 6자리까지 표시하라는 의미이다.

다시 저장하고 컴파일러 돌려주고 java로 실행 해보니 15.4를 소수점 6자리까지 표현하면 15.400000 로 바르게 표기가 되었다.


%f 와 %g 를 비교해 보기위해 돌렸는데, %g는 소수자리가 3개까지만 나와야되는데 왜 4개까지 나온건지....eclipse로 선생님과 함께 했던 것을 작동시켰을 때는 잘나왔는데. 흠

여기서는 123.200으로 3번째 자리까지 잘 나온다.

System.out.printf("%10.5g\n, 123.567);
%10 // 10칸을 할당하고 .5g 유효자리 5개만 찍는다.

System.out.printf("%e\n", 12345.0e-03);
%e는 소수점 이하 6자리까지 표현한다. 12345.0e-03은 실은 12.3450을 나타내는 것?아닌가? 이게 왜 1.234500e+01이 되는거지?
>>12.3450을 지수표현으로 바꾸면 1.23450e+01인데 소수자리를 여섯자리까지 표시할 수 있으므로 1.234500e+01가 되는 것임.


System.out.printf("%e10.3e\n", 12345.0e-03);
12.345를 나타내는 것이고 지수표현으로 바꾸면 1.2345e+01인데 소수자리를 세자리까지만 표시할 수 있으므로 마지막을 반올림해서 1.235e+01인 것.

이부분은 진짜 헷갈린다 근데 %g는 오차가 심해서 실제로는 많이 사용하지 않는 다고 한다.

--복습 62줄까지--

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03
0701_Java print문  (0) 2021.07.03

+ Recent posts