국비지원 day 3 - 자료형

semi·2022년 4월 4일
0

2022-03-03
헝가리언 표기법: 변수 앞에 접두어를 붙여 변수 성격을 표현한다.

boolean bOk = (”파리”==”새”); ← 논리형

int nMoney = 100; ← 정수형

char pName = “홍길동”;

자료형(Data type)

  1. 용도: 메모리에 공간 할당 시 사용(변수할당)
  2. 크기와 성질
  3. 변수 선언
  • 자료형 변수명; (int age;)

변수: Variable (가변값)

상수: Constant (불변값)

System.out.print(); // 출력만 
System.out.println(); // 출력하고 줄바꿈
System.out.printf(); // 형식대로 출력

System - 클래스명 out - 객체명 print - 메서드명

클래스(System): 변수, 객체, 메서드 포함한 형식 자료형

객체형(out): Object (실체)

메서드(method): 함수(기능)


논리형 자료형: boolean

상수: true or false

출력서식 : %b(소문자) or %B(대문자)

System.out.printf("%b\n", true);
		System.out.printf("%b %B \n", true, true);
		
		boolean bOk = 3>2;
		System.out.printf("3 > 2 : %b\n", bOk);

정수형 자료형: byte, short, int long → 기본형 int

상수: 1 0 ← 소수점이 없는 수, 1L ← long 형 상수

출력서식: %d (decimal): 10진수

            %x (hexa): 16진수

            %o (octal): 8진수
//100에 대한 각 진수 값 출력
		System.out.printf("10진수: %d\n", 100);
		System.out.printf("16진수: %x\n", 100);
		System.out.printf("8진수: %o\n", 100);
>>10진수: 100
>>16진수: 64
>>8진수: 144
		
		//각진수의 값 -> 10진수로 출력
		System.out.printf("%d\n", 0x64);
		System.out.printf("%d\n", 0144);
		System.out.printf("%d\n", 0xff);
>> 100
>> 100
>> 100
		
		//자릿수 지정해서 출력
		int n = 123;
		
		// %md : m <- 출력자릿수
		System.out.printf("[%10d]\n", n);
		
		// %0md : m <- 출력자릿수 0 <- 빈 공간을 0으로 채워라
		System.out.printf("[%013d]\n", n);
		
		// %-md : -m <- 출력자릿수, 음수 부호는 정렬 left 
		System.out.printf("[%-10d]\n", n);
>>[       123]
>>[0000000000123]
>>[123       ]

    // 출력 자릿수가 지정 자릿수보다 크면 지정 자릿수를 무시한다

실수형 자료형: float, double(기본형) <- 소수점이 있는 수
상수: 1.0 0. <-double
1.0F <- float
1.0e+2 <- 지수 형태
출력서식: %f <- 소수점 이하 6자리
%e <- 소수점 이하 6자리
%g <- 자릿수가 적은 쪽으로 출력

System.out.println(1.0); // <- double
System.out.println(1.0F); // <- float
>> 1.0
>> 1.0		

double d = 12.345678912;
		
System.out.printf("%f\n", d);
System.out.printf("%e\n", d);
System.out.printf("%g\n", d);
>> 12.345679
>> 1.234568e+01
>> 12.3457
		
// %m.nf : m(전체자릿수) n(소숫점이하자릿수)
// %0m.nf : 0(앞의 자릿수 0으로 채우기)
// %-m.nf : -(left 정렬)
		
double pi = Math.PI;
System.out.println(pi);
>>3.141592653589793

System.out.printf("%f\n", pi);
System.out.printf("[%10f]\n", pi);
System.out.printf("[%10.2f]\n", pi);
System.out.printf("[%010.2f]\n", pi);
System.out.printf("[%-10.2f]\n", pi);
>>3.141593
>>[  3.141593]
>>[      3.14]
>>[0000003.14]
>>[3.14      ]

문자형 자료형 : char

문자형 자료형 : char (2byte)
상수: 'A' '한' '韓'
출력서식: %c

ASCII 통신문자코드: 0~126
0~31: 통신 및 제어문자
32~126: 키보드 상 문자 코드
'A' : 65
'a' : 97 (소-> 대문자 간격: 32)
'0' : 48
'1' : 49

\r: carrige return(home)
\n: new line(enter)
\t: tap key
\a: alert(경고음)
\f: 다음 장에 출력하기
\b: caret의 위치를 이전으로 (<- 키)

public static void main(String[] args) {
System.out.printf("%c\n", 'a');
System.out.printf("%c\n", 65);
System.out.printf("%c\n", 66);
System.out.printf("%d\n", (int)'한');
System.out.printf("%c\n", 54620);
System.out.printf("A\n%c\n",66);
System.out.println("A\tB\tC");

-콘솔-
>> a
>> A
>> B
>> 54620
>>>> A
>> B
>> A	B	C

문자열 자료형: String

문자열 자료형: String
문자열: 1개 이상의 문자의 나열된 값
// "ABC" -> 'A' 'B' 'C'
상수: "ABC"
출력 서식: %s
%ms <- 문자수를 m개만 출력

  • 실습


스캐너를 사용해서 입력하는 프로그램을 만들었다.

결과


잘됨

  • 실습 2

    잘됨

  • 실습3


잘됨

  • 실습 4


잘안됨

왤까요?

Scanner는 입력이 들어오기 전까지 키보드 버퍼에서 대기하게 된다.

next(), nextInt(), nextDouble(), nextBoolean() 은 입력 구분자 전의 값만 가져오기 때문에 엔터 값이 그대로 대기하고 있게 된다. 따라서 아래 구문에서 엔터 값을 인식하게 된다. 그렇기 때문에 2개 구문이 한번에 출력되는 것이다.

nextLine을 쓰기 전에 키보드 버퍼 내의 엔터 값을 제거해 주어야 한다.

scanner.nextLine(); 값을 중간에 끼워넣어서 엔터 값을 없애주면

잘됨

0개의 댓글

관련 채용 정보