자료형과 변수의 기본문법 이해

JongseokLee·2021년 7월 24일
0
post-thumbnail

자료형과 변수의 기본문법 이해


자료형(Data type) 이해하기

데이터의 종류에 따라 컴퓨터 메모리의 크기를 정해놓은 것

-데이터의 종류 : 정수, 실수, 문자, 문자열
-데이터 종류에 따라 메모리의 크기가 달라짐
종류
-기본 자료형 : 논리형, 정수형, 실수형, 문자형
-참조형 자료형 : 문자열, 배열, 클래스

상수(constant)란?

프로그램 수행 중 값이 변하지 않는 데이터
종류 : 논리, 정수, 실수, 문자, 문자열

식별자(identifier)란?

프로그래머가 필요시 프로그램내에 정의 또는 선언하여 사용하는 이름
식별자 만드는 규칙

-구성 : 알파벳 대소문자, 한글, 숫자, _(언더바), $(달러 표시)를 사용, 이외는 사용불가(공백포함)
-식별자 첫문자 : 알파벳 대소문자, _(언더바), 한글로 시작하여야 함, 숫자는 사용불가
-예약어는 사용불가(ex:int,float...)
-알파벳 대소문자는 구분함

예약어(Reserved Word)란?

자바 언어에서 사용하는 문법적 단어들
식별자로 사용할 수 없음

변수(Variables)란?

데이터를 저장하는 컴퓨터 메모리 공간을 가리키는 식별자
변수에 데이터를 저장, 수정, 읽기 가능
프로그램이 실행되는 동안 변수의 데이터 값이 유효함
데이터의 자료형 크기에 따라 컴퓨터 메모리 공간이 확보됨

자료형 변환이란?

A라는 자료형의 값을 B라는 자료형 값으로 변환하는 것
종류 : 자동 자료형 변환, 강제 자료형 변환

표준 출력 메소드

System.out.println()메소드

-화면(표준 출력)에 내용을 출력해 주는 메소드
-소괄호 사이에 화면에 출력할 내용을 지정
-화면에 내용을 출력한 후 줄 바꿈 실행됨
System.out.print()메소드
-System.out.println()메소드와 사용법 동일
-화면에 내용을 출력한 후 줄 바꿈 실행 안 함

표준 입력 메소드 사용 방법

Scanner 클래스를 import 하기
표준 입력 객체를 이용하여 Scanner 클래스의 객체 생성하기
Scanner 객체를 이용하여 표준 입력(키보드)로 부터 데이터 입력 받기


1)논리형

기본 표현자료 크기데이터 표현 범위
boolean1byte참:true / 거짓:false

2)정수형

기본 표현자료 크기데이터 표현 범위
byte1byte-2^7 ~ 2^7 -1 / (-128 ~ 127)
short2byte-2^15 ~ 2^15 -1 / (-32,768 ~ 32,767)
int4byte-2^31 ~ 2^31 -1
long8byte-2^63 ~ 2^63 -1

3)실수형

기본 표현자료 크기데이터 표현 범위
float4byte±1.4*10^-45 ~ ±3.4*10^+38
double8byte±-4.9*10^-324 ~ ±1.7*10^+308

4)문자형

기본 표현자료 크기데이터 표현 범위
char2byte0 ~ 65,535

형변환 정리

public class UseVariables {
	
	public static void main(String[] args) {
		
		// 변수이름 표기법, 예약어 사용불가
		int countNum = 0;  // 카멜 표기법
		int my_total;      // 스네이크 표기법
		my_total = 0;  
		//int countNum = 0, my_total = 0;

		// countTotal = 10;  // 아래에 선언되어 있음
		
		// 자료형 및 상수, 변수 선언 및 초기화
		boolean bo_t = true;
		boolean bo_f = false;
		
		byte in_by = 127;
		//byte in_by_over = 128;  // 오버플로우
		//byte in_by_under = -129;  // 언더플로우
		short in_sh = 32767;
		int in_int = 100;
		long in_lo = 123L;
		
		float fl_1 = 123.45f;
		float fl_2 = 1.2345E+2f;
		double do_1 = 123.45;
		double do_2 = 1.2345E-2;
		
		char ch_1 = '자';
		char ch_2 = 'A';
		char ch_3 = '@';
		
		String st_1 = "자바 프로그래밍";
		String st_2 = "JAVA PROGRMMING";

		int countTotal = 0;  
		countNum = 10;

		// 자동 자료형 변환
		in_sh = in_by;  	// byte(1) -> short(2)
		in_int = in_sh; 	// short(2) -> int(4)
		in_lo = in_int;		// int(4) -> long(8)
		do_1 = fl_1;		// float(4) -> double(8)
		
		fl_1 = in_int;    	// int(4) -> float(4)
		do_1 = in_int;    	// int(4) -> double(8)

		// 강제 자료형 변환
		in_by = (byte)in_sh;  	// byte(1) <- short(2)
		in_sh = (short)in_int; 	// short(2) <- int(4)
		in_int = (int)in_lo;		// int(4) <- long(8)
		fl_1 = (float)do_1;		// float(4) <- double(8)
		
		in_int = (int)fl_1;    	// int(4) <- float(4)   // 소수점 잘림
		in_int = (int)do_1;    	// int(4) <- double(8)
		
		in_sh = (short)ch_2;  	// short(2) <- char(2)  // 문자와 정수 상호 변환
		
	}

}

System.out.println(); or System.out.print(); 정리

import java.util.Scanner;

public class UseTotal {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int inNum1, inNum2;    // 두 개의 정수 변수 선언
		String inString1, inString2;  // 두 개의 문자열 변수 선언
		double inDouble1, inDouble2;  // 두 개의 실수 변수 선언

		Scanner s = new Scanner(System.in);  // 키보드 입력을 위한 Scanner 객체 s 변수 선언

		System.out.print("첫번째 정수를 입력하시오 : ");
		inNum1 = s.nextInt();
		System.out.print("두번째 정수를 입력하시오 : ");
		inNum2 = s.nextInt();

		System.out.print("첫번째 실수를 입력하시오 : ");
		inDouble1 = s.nextDouble();
		System.out.print("두번째 실수를 입력하시오 : ");
		inDouble2 = s.nextDouble();

		
		System.out.print("첫번째 문자열를 입력하시오 : ");
		inString1 = s.nextLine(); // 앞에서 숫자입력시 엔터값을 처리하기 위함.
		inString1 = s.nextLine();
		System.out.print("두번째 문자열를 입력하시오 : ");
		inString2 = s.nextLine();

		int sum_num = inNum1 + inNum2;	// 정수의 덧셈
		double sum_double = inDouble1 + inDouble2;  // 실수의 덧셈
		String sum_string = inString1 + inString2;  // 문자열의 덧셈
		
		System.out.println("정수 : 첫번째 값("+inNum1+")+두번째 값("+inNum2+")=덧셈결과("+sum_num+")");
		System.out.println("실수 : 첫번째 값("+inDouble1+")+두번째 값("+inDouble2+")=덧셈결과("+sum_double+")");
		System.out.println("문자열 : 첫번째 값("+inString1+")+두번째 값("+inString2+")=덧셈결과("+sum_string+")");
		
		
		
		
	}

}
<Result>
              첫번째 정수를 입력하시오 : 1
              두번째 정수를 입력하시오 : 2
              첫번째 실수를 입력하시오 : 3
              두번째 실수를 입력하시오 : 4
              첫번째 문자열를 입력하시오 : 1
              두번째 문자열를 입력하시오 : 2
              정수 : 첫번째 값(1)+두번째 값(2)=덧셈결과(3)
              실수 : 첫번째 값(3.0)+두번째 값(4.0)=덧셈결과(7.0)
              문자열 : 첫번째 값(1)+두번째 값(2)=덧셈결과(12)

Python VS JAVA 문법 비교

<Python>
a = str(input("문자열 입력하세요"))
print("입력받은 값은 :",a)


<JAVA>

public class OpExam_2 {
	public static void main(String[] args) {
System.out.print("문자열을 입력하세요 : ");
String input_string = s.nextLine();
input_string = s.nextLine();
System.out.println("입력받은 값은 : "+ input_string)
	}
}
profile
DataEngineer Lee.

0개의 댓글