본문 바로가기
Develop/Java

JAVA 데이터형, 연산자, 제어문, 배열

by J0DEV 2021. 8. 6.
반응형

 

ex1.zip
다운로드

(예제 자료)

 

JAVA의 데이터형과 연산자에 대해 살펴보자


데이터형

1. 식별자

변수명, 클래스명, 메서드명 등을 지정할 때 사용하는 문자열로서 프로그래머가 임의로 명명할 수 있다.

식별자를 사용할때는 정해진 규칙을 따라야한다.

ㄱ. 식별자의 첫 문자는 반드시 문자이어야 한다.
ㄴ. 문자와 숫자를 혼합해서 사용할 수 없다.
ㄷ. 특수문자는 사용 불가능하나 '_', '$'는 사용가능하다.
ㄹ. 예약어는 식별자로 사용할 수 없다.
ㅁ. 대소문자는 구분되어 사용된다.

2. 예약어

자바언어에서 기본적으로 정의해 놓은 단어이며 사용자들은 이런 예약어를 식별자로 정의하여 사용할 수 없다.

(abstract, boolean, break, case, char, false, final, new, null, int 등등)

 

3. 기본 데이터형

자바 프로그래밍을 위해서 데이터의 최소단위를 다양한 형태로 구분해 놓은 것이다.

데이터형   명칭 의미  데이터터 크기 
 논리형  boolean  참(true), 거짓(false) 값을 저장  True, False
 문자형  char  2byte 크기의 단일 문자 저장  2byte
 정수형  byte  1byte 크기의 데이터를 저장  1byte
   short  2byte 크기의 정수를 저장  2byte
   int  4byte 크기의 정수를 저장  4byte
   long  8byte 크기의 정수를 저장  8byte
 실수형  float  4byte 크기의 실수를 저장  4byte
   double  8byte 크기의 실수를 저장  8byte

4. 레퍼런스 데이터형

참조의 의미로서 실체의 위치정보만을 가진다는 것을 의미한다. 크기가 가변적이므로 객체의 위치만 저장 가능하다.

5. 변수

프로그램에서 메모리에 접근하기 위해 필요한 방법으로서 사용하며 데이터를 저장할 수 있고 불러올 수도 있다.

사용할려는 데이터 형에따라 기본 데이터형과 레퍼런스 데이터형으로 나눈다.

기본데이터형
변수를 사용하기 위해서 선언 절차가 필요하다.
ex) char name;
변수는 식별자 선언 규칙에 따라 선언해야 한다.
변수 선언과 동시에 값을 할당할 수도 있다.   
ex) int nAge = 30;

6. 상수

자바언어에서 변하지 않는 값을 지정하기 위해 사용되며 데이터형에 따라 표기법이 달라진다.

 

  1. 논리형 상수
    • 참(true)또는 거짓(false)의 두 가지 값만을 가진다.
  2. 문자형 상수
    • ' 와 ' 사이에 들어있는 문자로서 다음과 같이 표기한다. (Ex 'a', '가')
    • 특수문자는 다음과 같이 백슬래시를 앞에 붙여 사용한다. (Ex '\n', '\r', '\t')
  3. 정수형 상수
    • 10진, 8진, 16진 정수를 정의한다.
    • 8진수는 숫자 앞에 0을 붙이고 16진수는 숫자 앞에 0x를 붙인다. (Ex 10진수 : 16, 16진수 : 0xA, 8진수 : 012)
  4. 실수형 상수
    • 실수형 상수는 다음과 같이 4가지 방식으로 표기한다.
    • (Ex 3.14 : 일반적인 방법, 0.314e + 1 : 지수 표기방법, 3.14f : float형 상수 표기방법, 3.14d : double형 상수 표기방법

연산자

1. 자바 언어에서 자주 사용되는 연산자.

우선순위  연산자  내용 
1  [], ++, --, +, -, ~, !, new  단항 연산자
2  *, /, %  곱셈, 나눗셈, 나머지
3  +, -  덧셈, 뺄셈, 문자열결합
4  <<, >> 비트 이동 
5  <, <=, >=, > 크기 비교 
6  ==, != 크기 비교 
7  & 비트 AND 
8  ^ 비트 XOR 
9  | 비트 OR
10  && 논리 AND 
11  || 논리 OR 
12  ? : 삼항연산자 

 

2. 연산자의 종류

  • 수치연산자
    • 일반적인 수학적 연산에 이용된다.
    • +, -, *, /, % (덧셈, 뺄셈, 곱하기, 나누기, 나머지)
  • 관계연산자
    • 두 변수의 값을 비교하는데 사용된다.
연산자  내용 
오른쪽이 왼쪽보다 크다. 
<= 오른쪽이 왼쪽보다 크거나 같다. 
왼쪽이 오른쪽보다 크다. 
>=  왼쪽이 오른쪽보다 크거나 같다. 
 == 오른쪽과 왼쪽이 같다. 
!=  오른쪽과 왼쪽이 같지 않다.
  • 논리연산자
    • 논리형 데이터에 대한 논리연산을 수행하고 결과로서 true, false를 반환한다.
 연산자 내용 
&&  논리 AND 
||  논리 OR 
NOT 
  • 대입연산자
    • 일반적인 대입연산자는 연산자의 오른쪽에 할당된 변수 또는 값을 왼쪽의 변수에 저장하도록 한다.
    • 대입 연산자와 다른 연산자를 결합한 연산 후 대입 연산산자를 사용할 수도 있다.
연산자 내용 
왼쪽에 오른쪽의 값을 저장한다. 
+=  왼쪽에 오른쪽의 값을 더해서 다시 왼쪽에 저장한다. 
-=  왼쪽에 오른쪽의 값을 빼서 다시 왼쪽에 저장한다.
*=  왼쪽에 오른쪽의 값을 곱해서 다시 왼쪽에 저장한다. 
/=  왼쪽에 오른쪽의 값을 나누어 다시 왼쪽에 저장한다. 
  • 삼항연산자
    • 조건문을 대신해서 사용될 수 있는 연산자로서 대입연산자와 같이 사용되기도 한다.
연산자  내용 
?   :  변수 = 조건 ? 값1 : 값 2 
조건식 ? 참일 경우의 값 : 거짓일 경우의 값
Ex)
a= 10;
result = (a>10) ? 100 : 200;

    

실습1

제어문

1. 실행문

변수 또는 상수를 선언하거나, 연산하는 문장, 메서드를 호출하는 문장이다.

실행문의 마지막에는 반드시 세미콜론(";")을 붙여주어야 하며, 한 줄에 여러개의 실행문이 있어도 된다.

Ex) int num 10; int result = ++num; num++;

2. 주석문

주석문이란?

자바코드의 실행과 관계없이 문장의 내용을 설명하거나 특정 문장에 대한 실행을 생갹할 수 있도록 설정하는 기호.

위의 <실습1>에서의 "//"와 같이 //뒤에 오는 문장은 실행이 되지않는다.

또한 여러 줄의 주석을 달기 위해서는 "/* 내용 */" 를 사용하면 된다.

3. 조건분기문

조건분기문이란?

조건식 또는 값에 따라 프로그램의 실행 흐름을 변환시키는 것이다.

IF문

조건식이 참인지 거짓인지 검사하여 프로그램의 흐름을 결정
else 또는 else if 문장과 같이 사용될 수 있다.
if 문에 의해 처리되어야 할 문장이 여러 줄일 경우 {}안에 문장을 두어야 한다.
단일 if문, if~else문, 다중 if~else문이 있다.

실습2

 

Switch문

여러개의 조건을 변수값이 일치하는가에 의해 판단한다.
연속적이 값의 비교는 할 수 없다.

실습3

4. 반복문

지정된 문장을 여러 번 반복 수행 할 수 있도록 정의한 문장이며 특정 조건을 만족할 경우 해당하는 실행문을 반복 수행하도록 한다.

실행문이 여러 개일 경우 {}로 묶는다.

 

 

for 문

  • 지정된 횟수만큼 반복수행 하는데 적합하다.

while문

  • 조건식을 검사하여 참일 경우 반복 수행한다. 단 한번도 수행되지 않을 수 없다.

do~while문

  • 조건식을 뒤에 검사한다는 것을 제외하고는 while문과 같다. do문은 최소한 한번은 수행된다.

실습 4

배열

배열이란?

같은 유형의 데이터를 하나의 이름으로 지정한 것이다.

데이터의 구별은 데이터의 위치를 나타내는 정수인 인덱스를 이용하며 자바에서의 인덱스는 0부터 시작하며 데이터의 개수가 10일 경우 시작인덱스는 0, 마지막 인덱스는 9이다.

int형 배열을 선언했다고 가정하자.

실습 5

위의 실습은 1차원 배열을 예로 든것이다.

앞에서 배운 for문을 2중으로 중첩하고 2차원의 배열을 사용하면 다음과 같은 프로그램을 작성할 수도 있다.

실습 6

 

 

 

반응형

'Develop > Java' 카테고리의 다른 글

JAVA this, super 수정자  (0) 2021.08.08
JAVA 상속과 접근제어  (0) 2021.08.08
JAVA 메소드, 생성자  (0) 2021.08.08
JAVA 객체지향 프로그래밍  (0) 2021.08.06
JAVA 개발환경 구축  (0) 2021.08.06