10-3 while

while(true or false) {....}

while(rNum (10)

rNum이가 10보다 작을 때까지 프로그램 반복 진행

int i = 1;

while (i < 10) {

System.out.printf("%d * %d = %d\n", num, i, (num * i));

i++;

}

=>INPUT NUMBER : 9

9 * 1 = 9

9 * 2 = 18

9 * 3 = 27

.

.

.

for문과 while문 구성차이

*for문은 i초기값을 안에서 설정하지만, while문은 밖에서 i 초기값을 정한다.

*for문은 증감구성이 안에서 설정되지만, while문은 밖에서 증감구성을 한다.

=while문은 조건식 외에 초기값 및 증감구성은 외부에 존재한다.

 

 

10-4 do ~ while

-while문과 비슷하며,

차이점은 조건결과에 상관 없이 무조건 최초한번은 {...}의 프로그램을 수행 한다.

 

//do ~ while

do {

System.out.println("무조건 1번은 실행합니다.“);

} while (false);

*while문은 처음에 조건식이 있어 true인지 false인지 확인하고 실행구문을 실행

*do while은 조건식이 후에 있어 무조건 실행구문 실행시키고 뒤에 조건식의 true false에 따라 실행구문이 실행된다.

 

실습1

이렇게 작성하니 그냥 하기나 해가 무한반복 된다.

 

실습2

i++;을 명시해주니 무한 반복없이 숫자 20전까지 총 19그냥하기나 해가 반복됨.

*리소스를 다 써버리고 시스템이 꺼지는 경우가 있다고 하니 조심할 것!!!!

 

실습3

while 조건식이 false이니 그냥 하기나 해가 한번만 출력 된다.

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200311 10강 반복문  (0) 2020.06.14
20200310 9강 조건문  (0) 2020.06.14
20200309 8강 배열과 메모리  (0) 2020.06.14
20200306 7강 배열  (0) 2020.06.14
20200305 6-2강 연산자  (0) 2020.06.14

10강 반복문

-프로그램이 반복적으로 실행 되기 위한 반복문

-특정한 동작이 반복적으로 이루어져야 할 때 사용한다.

-모든 언어에서 존재한다.

-반복문을 구현해내는 for/while문을 공부한다.

 

 

10-1 반복문이란?

-특정조건에 따라 반복적으로 진행하는 것을 반복문이라고 한다.

for, while: 특정한 조건이 참일 때 계속 반복 수행

for문 예1)

구구단을 구하기 위해 1에서부터 1씩 더하면서 9까지 곱셈연산을 진행한다.

while문 예1)

조도 센서를 센싱한 데이터가 10미만이면 건물의 LED1초 간격으로 계속 점등한다.

 

10-2 for

기본문법틀

for (int i = 1; i<10; i++)

for (int i = 1; i<10; i++)

(데이터 초기값, 조건식, 증감으로 구성)

for (int i = 1; i<10; i=i+2

(데이터 초기값, 조건식, 증감으로 구성)

i1부터 10보다 작을 때까지

i1씩 더해가면서 프로그램을 반복 진행

i1부터 10보다 작은을 때까지

i2씩 더해가면서 프로그램을 반복 진행

 

실습

 

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200311 10-2강 반복문  (0) 2020.06.14
20200310 9강 조건문  (0) 2020.06.14
20200309 8강 배열과 메모리  (0) 2020.06.14
20200306 7강 배열  (0) 2020.06.14
20200305 6-2강 연산자  (0) 2020.06.14

9강 조건문

-어떠한 조건에 따라서 프로그램의 흐름이 결정/변경 되는 것을 조건문이라고 한다.

)사과를 좋아할 경우 사과를 구입한다. 사과를 좋아하지 않을 경우 사과를 구입하지 않는다.

-프로그램의 조건 결과에 따라 양자 택일 또는 다자 택일 진행하는 조건문에 대해 학습합니다.

 

9-1 조건문이란?

-조건의 결과에 따라서 양자 택일 또는 다자 택일을 진행한다.

조건문

1. 양자택일

(주로 if문이 쓰임)

2. 다자 택일

(주로 switch문이 쓰임)

*상대적으로 if문이 더 많이 사용 된다. switch도 많이 사용된다.

 

 

9-2 if

-if(조건식), if(조건식) else, if(조건식) else if(조건식)

)

in num1 = 10;

in num2 = 20;

 

//if(조건식)

if(num1 < num2) {

System.out.println("num1num2보다 작다.“);

}

System.out.println();

=>조건문이 참이라면 실행문이 실행 되고 거짓이라면 실행문을 빠져나와 다른 조건문을 진행한다.

 

//if(조건식) else

if(num1 < num2) {

System.out.println("num1num2보다 작다.“);

=>위에 있는 조건문이 참이면 현 실행문 실행

} else {

System.out.println("num2num1보다 크거나 같다.“);

}

System.out.println();

=>위에 있는 조건문이 false이면 두번째 구문/실행문 실행

 

//if(조건식) else if(조건식) -> else if를 활용하여 여러 가지 조건문을 만들 수 있다.

if(num1 < num2) {

System.out.println("num1num2보다 작다.“);

}else if(num1 > num2){

System.out.println("num1num2보다 크다.“);

} else {

System.out.println("num1num2는 같다.“);

}

=>num1num2 보다 작다면 "num1num2보다 작다.“

num1num2 보다 크다면 "num2num1보다 작다.“

그것이 아니라면 else에서 실행문을 출력한다.

 

주목적은 데이터를 주거니 받거니 하기 위함

-데이터를 주거니 받거니 할 때 중간의 어떠한 조건을 걸어 프로그램을 완성한다.

-예를 들어, 은행에서 10만원을 이체 요청을 할 때, 은행에서 10만원을 이체한다.

-id나 이름 주민번호 등등 조건이 맞으면 이체를 한다. 이럴 때 조건문이 필요하다.

 

실습

 

9-3 switch

-비교대상이 되는 결과값과 선택사항이 많을 경우 주로 사용한다.

-다자택일을 할 때에 사용 된다.

-사용자로부터 값/데이터를 받고 싶을 때(scanner를 이용)

 

//switch

System.out.println("점수를 입력하세요 : “);

Scanner inputNum = new Scanner(System.in);

int score = inputNum.nextInt();

 

switch (score) {

case 100;

case 90;

System.out.println("“);

break;

 

case 80;

System.out.println("“);

break;

 

 

case 70;

System.out.println("“);

break;

 

default:

System.out.println("try again!“);

break;

}

 

inputNum.close();

 

실습1

실습2

 

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200311 10-2강 반복문  (0) 2020.06.14
20200311 10강 반복문  (0) 2020.06.14
20200309 8강 배열과 메모리  (0) 2020.06.14
20200306 7강 배열  (0) 2020.06.14
20200305 6-2강 연산자  (0) 2020.06.14

8강 배열과 메모리

-다수의 데이터를 인덱스로 관리하는 것을 배열이라고 한다.

-배열은 요소들의 집합

 

8-1 배열의 메모리 크기

-배열을 구성하는 데이터의 자료형에 따라서 배열의 메모리 크기가 결정 된다.

 

int[] arr = new int[3];

*int형 데이터가 3개 있다.

*int형 하나가 4byte 이므로 총 메모리의 크기가 12byte인 배열이 만들어진다.

 

8-2 배열을 가리키는 배열이름

-기본 자료형 데이터를 담고 있는 변수와 달리 배열 변수는 배열 데이터의 주소를 담고 .

*객체 자료형은 다른 곳에 객체를 만들고 변수에는 메모리주소(레퍼런스)만 가지고 있다.

 

데이터 구조(저장)관점

변수 i

int i = 10;

 

배열 i

int [] i = new int[3];

-int형 배열 i 안에 데이터가 3개 있다.

-i안에 데이터가 전부 다 들어가는 것이 아니라 전체 큰 메모리에서 데이터가 따로따로 데이터가 들어가 있다.

-i라는 메모리는 별개로 다른 곳에 존재한다.

-그럼 i(배열) 라는 메모리에는 무엇이 들어 있는가?

 10,20,30를 시작하는 메모리 첫 번째 주소만 배열 i에 저장이 되어 있다.

 

index i0번째의 값을 원할 때 하기를 레퍼런스(참조)한다.

index i1번째의 값을 원할 때 하기를 레퍼런스(참조)한다.

index i2번째의 값을 원할 때 하기를 레퍼런스(참조)한다.

i[]주소

10

20

30

i(배열)

i[0]
*메모리 주소 0만 있다.

i[1]

i[2]

 

 

8-3 배열 기본속성

-기본 자료형 데이터를 담고 있는 변수와 달리 배열 변수는 배열 데이터의 주소를 담고 있다.

 

1. 배열의 기본 속성

int[] arrArt1 = {10, 20, 30, 40, 50, 60};

*위에 명령어는 선언과 초기화를 동시에 하고 있다.

*초기화 하는 데 데이터 값 10,20,30,40,50,60

*배열의 크기 6, [](인덱스)0-5까지, 숫자는 기초자료형으로 10,20,30,40,50,60이 들어있다.

 

null이란

-배열을 만들지 않아 주소가 담겨져 있지 않은 상태를 null이라고 한다.

 

int[] arrArt2 = null;

*위에는 배열의 시작하는 주소를 배열 i(int[] i = new int[];)에 넣어 두어야 하는데 아직 배열을 만들지 않아 주소가 담겨져 있지 않은 상태를 null이라고 한다.

int[] arrArt3 = null;

 

2.배열의 길이를 얻어내는 명령어

int[] arrArt1 = {10, 20, 30, 40, 50, 60};

System.out.println("arrArt1.length : " + arrArt1.length);

->arrArt1.length : 6

*배열의길이 출력하는 명령어 arrArt1.length

출력

 

3. 배열요소 출력하는 명령어

int[] arrArt1 = {10, 20, 30, 40, 50, 60};

System.out.println("arrArt1 : " + Array.toString(arrArt1));

->arrArt1 : {10, 20, 30, 40, 50, 60}

*Array.toString(arrArt1));

 

4. 배열 요소 복사하는 명령어

arrArt3 = Arrays.copy0f(arrArt1, arrArt1.length); //복사하려는 배열, 배열의 크기입력

System.out.println("arrArt3 : " + Array.toString(arrArt3));

->arrArt3 : {10, 20, 30, 40, 50, 60}

*배열1의 값을 복사 한다라고 보아야 한다.

 배열1의 값을 복사해서 어딘가의 메모리에 저장한 주소를 arrArt3이 참조한다.

그러므로 arrArt1의 메모리주소와 arrArt3의 메모리주소는 다르다.

 

5. 배열 주소(레퍼런스)를 출력하는 명령어

레퍼런스 - 배열의 값이 저장 되어 있는 주소를 레퍼런스라고 한다.

 

arrArt2 = arrArt1; //arrArt1arrArt2의 배열값이 저장 되어 있는 주소가 같다

System.out.println("arrArt1 : " + arrArt1);

=>I@4554617C

System.out.println("arrArt2 : " + arrArt2);

=>I@4554617C

System.out.println("arrArt3 : " + arrArt3);

=>I@74a14482

 

 

8-4 다차원 배열

-이전까지는 1차원 배열을 알아보았지만, 3차원,4차원 다차원 배열이 있다.

 

다차원 배열

-배열의 각 요소안에 또다시 배열이 들어간다는 개념

-2차원 배열까지는 사용하지만

-3차원 배열은 거의 사용하지 않는다. 이유는 너무나 많은 메모리를 사용하게 되므로 퍼포 먼스가 나오지 않고, 로직이 복잡해질 수 있다.

 

int[] arrArt1 = {10, 20, 30);

*10안에 100이라는 배열값이 있다. 행 열 개념으로 존재

 

2(2차원 배열)

3

10

100

20

200

30

300

 

int[][] arrMul = new int[3][2]; // 32

-2차원 배열을 하기처럼 값을 넣어준다. 행 열로 개념으로 접근한다.

-arrMul[0],[1],[2] -> 3행

-arrMul[0],[1] ->2열

 

arrMul[0][0] = 10; //0행의 0번째 값 출력

arrMul[0][1] = 100; //0행의 1번째 값 출력

arrMul[1][0] = 20; //1행의 0번째 값 출력

arrMul[1][1] = 200; //1행의 1번째 값 출력

arrMul[2][0] = 30; //2행의 0번째 값 출력

arrMul[2][1] = 300; //2행의 1번째 값 출력

 

System.out.println("arrMul[0] : " + Arrays.toString(arrMul[0]));

=>arrMul[0] : [10, 100]

System.out.println("arrMul[1] : " + Arrays.toString(arrMul[1]));

=>arrMul[1] : [20, 200]

System.out.println("arrMul[2] : " + Arrays.toString(arrMul[2]));

=>arrMul[2] : [30, 300]

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200311 10강 반복문  (0) 2020.06.14
20200310 9강 조건문  (0) 2020.06.14
20200306 7강 배열  (0) 2020.06.14
20200305 6-2강 연산자  (0) 2020.06.14
20200305 6강 연산자  (0) 2020.06.14

7강 배열

-데이터를 관리하기 위한 가장 기본적인 방법

-다수의 데이터를 인덱스를 이용해서 관리

 

7-1 배열이란?

-인덱스를 이용해서 자료형이 같은 데이터를 관리

-데이터를 여러개로 나열해서 한번에 인덱스(0 ~ n-1 번호로)을 붙여서 관리한.

-배열의 길이(n)=배열크기

데이터

데이터

데이터

데이터

데이터

데이터

데이터

데이터

데이터

데이터

데이터

번호

1

2

3

4

5

6

7

8

9

10

인덱스

(실제

관리하는 번호)

0

1

2

3

4

5

6

7

8

9

배열길이 : n

*데이터가 10개라면 배열의 길이는 10개라고 볼 수 있다. 인덱스는 0부터 9까지 있다.

 

배열 사용 예)

*(비교)변수는 데이터 하나만을 관리 할 수 있었다.

변수의 예) int a =10 데이터 하나만을 10에 넣어서 관리했다.

 

배열사용 예

아파트 호수 관리 : 101, 201, 301....401, 501

회사 사번 관리 : 홍길동(k-0001), 홍길자(k-0002), 홍길순(k-0003)....

학급 학생 관리 : 박찬호(01), 이승엽(02), 박용택(03), 홍성훈(04)

 

 

 

7-2 배열 선언 및 초기화

배열

-변수와 마찬가지로 선언과 초기화 과정을 거쳐 사용한다.

-배열 선언과 초기화를 동시에 사용이 가능하다.

배열 선언 후 초기화

배열 선언과 초기화를 동시에

int[] art1 = new int[5]

art1[0] = 100;

art1[1] = 200;

art1[2] = 200;

System.out.println("arr1[0]:" + arr1[0])

System.out.println("arr1[1]:" + arr1[1])

int[] art2 = {10, 20, 30};

System.out.println("art2[0] : " + arr2[0]

System.out.println("art2[1] : " + arr2[0]

System.out.println("art2[2] : " + arr2[0]

*배열의 선언과 초기화 할 때 배열은 다수 데이터를 인덱스로 한번에 관리한다.

그 데이터 안에 자료형이 있다. 자료는 동일해야 한다.

예를 들어 char이면 charintint형 으로 데이터를 입력해야 한다.

(int형에 char형에 해당하는 문자를 넣으면 에러가 발생한다.)

 

배열 선언 및 초기화 순서

a. int -> 배열 안에 들어가는 데이터 자료 형을 먼저 정하기

b. [] -> 배열기호(배열변수를 선언하는 기호)

c. arr1 -> 배열이름

d. new -> new라는 연산자 키워드

e. int[5] -> 배열의 크기를 명시, 배열의 크기만큼 메모리를 확보했다는 의미

f. arr1[0] = 100; 첫 번째 인덱스에 순서와 값을 넣는다, 그 다음 순서 이어서...

 

배열선언 및 생성

int[] arr1 = new int[5];

*이렇게도 가능

int[] arra1; ->배열선언

arr1 = new int[5]; -> 배열 생성

배열의 초기화

arr1[0] = 100;

arr1[1] = 200;

 

출력명령어

System.out.println("arr1[0] : " + arr1[0]);

System.out.println("arr1[1] : " + arr1[1]);

 

출력값

arr1[0] : 100

arr1[0] : 200

*선언/초기화/메모리배열이 정상적으로 만들어졌다고 볼 수 있다.

*자바에서의 배열은 한번 크기가 정해지면 변경 될 수가 없다.

*내가 찾아본 자료

반복문을 이용하여 출력 가능

)

int[] grades = new int[5];

 

grades[0] = 90;

grades[1] = 93;

grades[2] = 100;

grades[3] = 85;

grades[4] = 99;

 

for (int I = 0; i<5; i++) {

System.out.println(grades[i]);

}

 

*import 하는 방법

import 할 파일이 d드라이브가 아닌

c드라이브에 있다고 할 때에 workspace를 변경해야 한다.

file->Switch Workspace->C:\ + 프로젝트가 있는 경로 누르기

 

마우스 우클릭-> import

 

 

7-3 배열을 이용한 학사관리

String[] name = {“박찬호”, “이승엽”, “박병호”, “이병규”, “류현진”};

//String ->자로형이 문자열로 만들어진 배열

int[] score = new int[5];

Scanner scanner = new Scanner(System.in); //->객체 생성을 해서 사용을 함.

//Scanner -> 사용자로부터 무언가(데이터)를 받을 때 사용하는 클래스

 

System.out.printf("%의 점수를 입력하시오. : “, name[0]);

//박찬호의 점수를 입력하시오 라는 뜻

 

score[0] = scanner.nextln();

//->사용자가 데이터 입력하기를 기다린다. 점수를 입력하면 score 배열 인덱스0에 점수가

들어가게 된다.

//scaner가 데이터를 입력 받는 곳

 

scanner.close(); //->리소스를 클로즈 해주고 반환하는 명령어

 

학사관리 실습

import java.util.Scanner 입력

 

 

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200310 9강 조건문  (0) 2020.06.14
20200309 8강 배열과 메모리  (0) 2020.06.14
20200305 6-2강 연산자  (0) 2020.06.14
20200305 6강 연산자  (0) 2020.06.14
20200304 5강 특수문자와 서식 문자  (0) 2020.06.14

6-6 증감연산자

++

1만큼 증가

1) ++x -> 전이연산자 (x = x+1; 와 같음)

x = 10;

System.out.println("++x : " + (++x));

=>++x : 11

*연산하고 나서 출력이 된다.

 

2) x++ -> 후이연산자

x = 10;

System.out.println("x++ : " + (x++));

=> x++ : 10

System.out.println("x : " + (x));

=> x : 10

*x 값 그대로 출력을 먼저하고 더하게 된다. 메모리상태에만 11이 담겨 있다.

위에 명령어 영향으로 인해 밑에서의 x11로 출력이 된다.

--

1만큼 감소

1) --x -> 전이연산자 (x = x-1; 와 같음)

x = 10;

System.out.println("--x : " + (--x));

=>--x : 9

*연산하고 나서 출력이 된다.

 

2) x-- -> 후이연산자

x = 10;

System.out.println("x-- : " + (x--));

=> x-- : 10

System.out.println("x : " + (x));

=> x : 9

*x 값 그대로 출력을 먼저하고 더하게 된다. 메모리상태에만 9가 담겨 있다.

위에 명령어 영향으로 인해 밑에서의 x9로 출력이 된다.

 

 

6-7 논리연산자

-피연산자의 논리곱(AND), 논리합(OR), 논리부정(NOT)을 수행함

&&논리곱(AND)

a && b : ab가 모두 참이면 참

*&& : AND연산자

bootlean b1 = false;

bootlean b2 = true;

System.out.println("b1 && b2 : " + (b1 && b2));
b1 && b2 : false

*모두 참이어야 참

||논리합(OR)

a || b : ab중 하나라도 참이면 참

*|| : OR연산자

bootlean b1 = false;

bootlean b2 = true;

System.out.println("b1 || b2 : " + (b1 || b2));

=> b1||b2 : true

*둘중에 하나라도 참이면 참

!논리부정(NOT)

!a : a의 상태를 부정

* ! : NOT연산자

bootlean b1 = false;

bootlean b2 = true;

System.out.println("!b1 : " + !b1));

=> !b1 : true

System.out.println("!b2 : " + !b2));

=> !b1 : false

*참이면 거짓으로 거짓이면 참으로

 

실습

 

 

6-8 조건(삼항)연산자

-삼항 연산자로 두 개의 피연산자 연산 결과에 따라서 나머지 피연산자가 결정된다.

조건식? 1 : 2

조건식이 참이면 식1이 실행

조건식이 거짓이면 식2가 실행

)

x = 10; y=20;

int result = 0;

result = (x > y) ? 100 : 200;

//(x>y) -> 조건식, 100 -> 1, 200 -> 2

System.out.println("result : " + result);

=> result : 200

 

result = (x < y) ? 100 : 200;

System.out.println("result : " + result);

//(x<y) -> 조건식, 100 -> 1, 200 -> 2

=> result : 100

 

result = (x == y) ? 100 : 200;

System.out.println("result : " + result);

//(x==y) -> 조건식, 100 -> 1, 200 -> 2

=> result : 200

 

 

 

 

6-9 비트 연산자

-c계열에서는 많이 쓰이지만 자바에서는 메모리를 직접관리하지 않기 때문에

 

비트연산자는 많이 쓰이지 않는다.

-데이터를 비트(bit)단위로 환산하여 연산을 수행하며, 다른 연산자보다 연산 속도가 향상 된다.

 (우리가 느낄 수 없을 정도의 빠르기로 속도가 향상된다.)

&: AND 연산

a & b : ab가 모두 1이면 1

| : OR연산

a|b : ab중 하나라도 1이면 1

^: XOR연산

a^b : ab가 같지 않으면 1

 

연산원리

x = 2; //10진수를 2진수 비트단위로 환산시 00000010

y = 3; //10진수를 2진수 비트단위로 환산시 00000011

x=2

0

0

0

0

0

0

1

0

y=3

0

0

0

0

0

0

1

1

*환산한 숫자에서 xy를 나열하여 아래위로 10인지를 확인하여

연산(위에내용)을 하기처럼 한다.

&

0

0

0

0

0

0

1

0

|

0

0

0

0

0

0

1

1

^

0

0

0

0

0

0

0

1

 

)

System.out.println("x & y : " + (x & y));

=> 00000010 => x & y : 2

 

System.out.println("x ^ y : " + (x | y));

=> 00000011 => x ^ y : 3

 

System.out.println("x ^ y : " + (x ^ y));

=> 00000001 => x ^ y : 1

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200309 8강 배열과 메모리  (0) 2020.06.14
20200306 7강 배열  (0) 2020.06.14
20200305 6강 연산자  (0) 2020.06.14
20200304 5강 특수문자와 서식 문자  (0) 2020.06.14
20200304 4-3강 형 변환  (0) 2020.06.14

6강 연산자

-프로그램이 실행될 때 컴퓨터(CPU)에게 계산(연산)업무를 시키기 위한 방법에 대해 학습

-덧셈,뺄셈,곱셈,나눗셈 및 무엇보다 크다, 작다, 같다 등등 연산에 속한다.

-프로그래밍이 실행 될 때 컴퓨터 cpu에게 계산/연산 업무를 시키기 위한 방법에 대해 학습

 

컴퓨터구조

CPU - 연산업무

메모리 - 하드에 있는 데이터를 CPU로 나르는/가져오는 역할

하드 - 데이터용량

 

 

6-1 피연산자 개수에 의한 연산자 구분

단항 연산자 : 피연산자가 하나 존재

) +5 (+ : 연산자, 5 : 피연산자)

-5 (- : 연산자, 5 : 피연산자)

!x (*x의값을 부정할 때 이렇게 사용한다.)

 

이항연산자 : 피연산자가 두 개 존재

) x = 10, x<10, x>10 (x:피연산자, 10:피연산자)

*오른쪽에 있는 숫자를 변수에 대입할 때 대입연산자를 사용

 

삼항연산자 : 피연산자가 세 개 존재

-조건식의 결과가 참이면 수식어 true 거짓이면 false

)조건식 :true ?false

=> 조건식 : 피연산자, true : 피연산자, false: 피연산자

: 연산자, ? 연산자

 

 

6-2 대입 연산자

-오른쪽의 결과를 왼쪽에 대입(할당) 한다.

*수학에서는 = 는 오른쪽 및 왼쪽 값이 같다라고 쓰이지만,

코딩에서는 오른쪽 값을 왼쪽에 대입한다라고 한다.

*코딩에서 오른쪽 및 왼쪽 값이 같다라고 표현하려면

==를 사용하여야 한다.

 

오른쪽 값을 왼쪽에 대입 한다라는 개념의 예

int x = 10;

int y = 20;

System.out.println("x =" + x);

System.out.println("y =" + y);

=> x = 10

y = 20

 

x = y; //y값을 x에 할당/대입 한다.

System.out.println("x = " + x);

System.out.println("y = " + y);

=> x = 20

    y = 20

 

 

6-3 산술 연산자

-피연산자를 이용해서 +, -, *, /, %등 연산자로서 수행한다.

-산수와는 다르게 프로그램에서는 특히 %(나머지를 구하는)나머지 연산자가 하나 더 있다.

 

+

덧셈

int x =10;, int y=20;

System.out.println("x + y = " + (x + y));

x + y = 30

-

뺄셈

System.out.println("x - y = " + (x - y));

x - y = -10

*

곱셈

System.out.println("x * y = " + (x * y));

x * y = 200

/

나눗셈

int형 결과인 정수만 나온다.

System.out.println("x/y = " + (x / y));

x / y = 0

%

나머지

System.out.println("x % y = " + (x * y));

x % y = 10

 

 

6-4 복합 대입연산자

- 산술 연산자와 대입연산자를 결합한 연산자

int x = 10;

+=

 

더하고대입

System.out.println("x += 10 : " + (x += 10));

*x = x + 10을 줄여서 x+=10으로 표현한다.

x가 두 번 나오니 간략하게 x를 하나로 줄인다.

=> x+=10 : 20

-=

빼고대입

System.out.println("x -= 10 : " + (x -= 10));

*x = x - 10을 줄여서 x-=10으로 표현한다.

=> x-=10 : 0

*=

곱하고대입

System.out.println("x *= 10 : " + (x *= 10));

*x = x * 10을 줄여서 x*=10으로 표현한다.

=>x*=10 : 100

/=

나누고대입

System.out.println("x /= 10 : " + (x /= 10));

*x = x / 10을 줄여서 x/=10으로 표현한다.

=>x/=10 : 1

%=

나머지를 대입

System.out.println("x %= 10 : " + (x %= 10));

*x = x % 10을 줄여서 x%=10으로 표현한다.

=>x%=10 : 0

 

6-5 관계연산자

두 개의 피연산자를 비교해서 참/거짓 결론 도출을 한다.

int x = 10; y = 20;

>

a>b : ab보다 크면 참

System.out.println("x > y : " + (x>y));

<

a<b : ab보다 작으면 참

System.out.println("x < y : " + (x<y));

>=

a>=b : ab보다 크거나 같으면 참

System.out.println("x >= y : " + (x>=y));

<=

a<=b : a b보다 작거나 같으면 참

System.out.println("x =< y : " + (x=<y));

==

a==b : ab가 같으면 참 true

System.out.println("x == y : " + (x==y));

!=

a!=b : ab가 같지 않으면 참 true

System.out.println("x != y : " + (x!=y));

 

실습 (산술연산자, 복합대입연산자, 관계연산자)

 

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200306 7강 배열  (0) 2020.06.14
20200305 6-2강 연산자  (0) 2020.06.14
20200304 5강 특수문자와 서식 문자  (0) 2020.06.14
20200304 4-3강 형 변환  (0) 2020.06.14
20200304 4-2강 Java기본자료형  (0) 2020.06.14

5강 특수문자와 서식 문자

-숫자와 문자 외에 특수문자와 서식문자가 있다.

-특수문자 : 특수한 목적으로 쓰이는 특수문자

-서식문자 : 특정 서식에 쓰이는 서식문자

 

5-1 특수문자

*\ 은 역슬러시를 뜻한다.

 

1.\t 명령어

- tab 기능

) System.out.prinln("Good\tMorning~"); 입력시

하기와 같이 Good 뒤에 tab이 적용되어 나온다.

=> Good Morning~

 

2.\n 명령어

-줄 바꿈

)System.out.prinln("Good\nMorning~"); 입력시

=>Good

Morning~

 

3.\‘ 명령어

-작은 따옴표

) System.out.prinln("Good\'Morning~\'"); 입력시

=>Good 'Morning~'

 

4.\“ 명령어

-큰 따옴표

) System.out.prinln("Good\"Morning~\""); 입력시

=>Good "Morning~"

 

5.\\ 명령어

-역슬래쉬

) System.out.prinln("Good\\Morning~\\"); 입력시

=>Good \Morning~\

 

*\(역슬래쉬)사용하여야 특수문자가 출력 된다.

*양옆에

 

****주석처리 두가지 방법(코드를 왜 이렇게 작성했는지 동료들이 알도록 메모하는 용도)

1. \*   *\

-\*   *\여기 사이에 있는 내용은 주석처리 된다.

 

2. \\ (// 역슬래쉬)

- 한줄만 주석처리 할 때 // 역슬래쉬 두 번을 한다.

예)\\가나다라마바사

 

 

5-2 서식문자

-어떠한 식을 나타낼 때 사용한다.

 printf() 메서드를 이용

*fformat(형식)을 뜻함.

 

%d

10진수

System.out.println("오늘의 기온은 10도입니다.“);

System.out.println("오늘의 기온은 %d도입니다.\n", num1);

 

int num1 = 20;

System.out.println("오늘의 기온은 "+ num1 + "도 입니다.“);

System.out.println("오늘의 기온은 %d도입니다.\n", num1);
//10진수로 숫자가 변경되어 출력된다.

%o

8진수

System.out.println("오늘의 기온은 %o도입니다.\n", num1);

//8진수로 숫자가 변경 되어 출력 된다.

%x

16진수

System.out.println("오늘의 기온은 %x도입니다.\n", num1);

//16진수로 숫자가 변경 되어 출력 된다.

%c

문자

(char)

System.out.printf("소문자\'%c\'의대문자는\'%c\' 입니다.\n", 'a', 'A');

*단문자일때는 ‘’작은따옴표을 사용

%s

문자열

(string)

System.out.printf("\'%s\'을대문자로바꾸면\'%s\' 입니다.\n", "java", "JAVA")

*문자열일때는 “”큰따옴표를 사용할 것

%f

실수

(float)

float f = 1.23f;

System.out.printf("f = %f\n", f);

실수

(double)

double d = 1.23456d;

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

*주로 사용하는 서식문자만 사용 정리함.

*왜 굳이 특수문자를 사용하는가

-실시간으로 데이터(시간, 날짜)가 들어올 때 서식 문자를 이용한다.

)

char c1 = 'a';

char c2 = 'A';

System.out.printf("소문자\'%c\'의대문자는\'%c\' 입니다.\n", 'a', 'A');

c1c2의 로직을 서버네트워크에서 받아오는 값으로 처리를 해주면

그 값이 그 때마다 실시간으로 적용이 되어 출력이 된다.

 

실습1

실습2

 

 

5-3 서식문자의 정렬과 소수점 제한 기능

-서식 문자를 이용해 출력 문자의 정렬 및 소수점 제한 기능을 사용할 수 있다.

 

//서식문자 정렬 기능 %d(10진수 서식문자)

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

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

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

=> 123

1234

12345

 

//서식문자 오른쪽으로 정렬

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

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

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

=> 123

1234

12345

 

//서식문자 소수점제한 기능

System.out.printf("%f\n", 1.23); => 1.2300000

(00000이 나오게 하는 것을 보고 싶지 않을 때)

System.out.printf("%.0f\n", 1.23); => 1.2

System.out.printf("%.1f\n", 1.23); => 1.23

System.out.printf("%.2f\n", 1.23); => 1.23

System.out.printf("%.3f\n", 1.23); => 1.230

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200305 6-2강 연산자  (0) 2020.06.14
20200305 6강 연산자  (0) 2020.06.14
20200304 4-3강 형 변환  (0) 2020.06.14
20200304 4-2강 Java기본자료형  (0) 2020.06.14
20200304 4강 기본자료형  (0) 2020.06.13

4-3 형 변환

-int형을 쓰다가 long으로 확장/변환 가능하다.

-long형을 쓰다가 공간이 너무 클 경우에 int형으로 변환이 가능하다.

 

형 변환의 두가지 종류

1. 자동적(묵시적) 형 변환

-작은 공간의 메모리에서 큰 공간의 메모리로 이동

 작은 크기의 자료형이 큰 공간으로 들어갈 때 문제 없이 들어갈 수 있다.

ex) byte by =10; //1byte

int in = by; //4byte로 이동, 이렇게 이동을 시켜준다.

System.out.prinln("in = " + in);

=>in = 10

 

2. 명시적 형 변환

-큰공간의 메모리에서 작은 공간의 메모리로 이동할 때 문제가 생기기 때문에 하기와 같이 명시를 해주어야 한다.

 iVar라는 변수가 byte에 담기려면 byte로 형변환을 해서 들어가야 한다고 명시를 해주어야 한다.

 그래서 명시적 형변환이라고 부른다.

 

)int iVar = 100;

byte bVar = (byte)iVar; // byte숫자범위 : -127 ~ +128

System.out.println("bVar = " + bVar);

=>bVar = 100

 

//다시

iVar = 12456;

bVar = (byte)iVar;

System.out.println("bVar = " + bVar);

=>bVar = 64 (데이터손실)

//byte로 들어가기에 숫자 범위에 있지 않고 너무 커서 데이터가 손실 되고 들어갈 수 있는 만큼만 들어간다.

 

실습

*데이터 누실이 일어나지 않게 하기 위해 큰숫자의 데이터를 사용할 때에 처음부터 int나, double을 사용해야 한다.

 

'신입개발자로 취업하기까지 > JAVA' 카테고리의 다른 글

20200305 6강 연산자  (0) 2020.06.14
20200304 5강 특수문자와 서식 문자  (0) 2020.06.14
20200304 4-2강 Java기본자료형  (0) 2020.06.14
20200304 4강 기본자료형  (0) 2020.06.13
20200304 3강 변수  (0) 2020.06.13

4-2 Java 기본자료형

정수형 (byte, char, short, int, long)

a. byte-1 byte

-메모리에서 1byte만 차지한다, 8bit 공간만 갖는다,

-표현할 수 있는 정수의 크기가 작다.

(범위 -127 ~ +128 -256개의 정수만 다룰 수 있다.)

*128까지 표현을 할 수 있는데 숫자 200을 넣으면 129부터는 누실(overflow)발생

*잘 사용하지 않는다.

 

b. char (character)

-2byte만 차지한다. 16bit 공간만 갖는다.

-단일 문자 예)A, B, 등등

*잘 사용하지 않는다.

*캐릭터는 숫자가 아니라 문자인데 왜 정수형에 포함시켰는가

-pc컴퓨터는 binary(1,0)으로만 표현할 수 있어서, ABC를 이해할 수 없지만

 A라는 문자를 컴퓨터에서는 65로 표현하자라고 규정을 해서 아스킥코드 만들어놓았다.

 그래서 각각 문자마다 아스킥코드로 만들어 놓았다.

 

c. short

-2byte만 차지한다. 16bit 공간만 갖는다.

-똑같은 정수를 표현하지만 byte보단 큰 수까지 표현을 할 수 있다.

-하지만 그렇게 큰 범위의 정수를 표현할 수 없다.

 

d. int

-4byte만 차지한다. 32bit 공간만 갖는다.

*실생활에서 사람이 필요한 숫자는 32bit 안에서 해결 할 수 있어 많이 쓰인다.

 

e. long

-8byte만 차지한다. 64bit 공간만 갖는다.

*t실생활에서 쓰지 않는 큰숫자까지 취급을 해서 사용할 수 있다.

*얼마나큰숫자????

=>charint가 많이 쓰이고, 2개 중에서도 int가 많이 쓰인다.

 

정리

분류

이름

바이트수

비고

정수형

byte

1 byte

-127  ~  +128

short

2 byte

-32,768  ~ +32,767

int

4 byte

-2,147,483,648 ~
+ 2,147,483,647

long

8 byte

-9,223,372,036,854,775,808 ~
+9,223,372,036,854,775,807

 

실수형(float, double)

)소수점

-3.1456

-1.00056

-1.78

 

a. float

-4byte만 차지 한다. 32bit 공간만 갖는다.

*소수점을 표현하기에는 공간이 작다.

 

b. double

-8byte만 차지한다. 64bit 공간만 갖는다.

*double만 알아도 프로그래밍하는데 지장이 없을 정도로 많이 쓰인다.

 

 

 

논리형 (boolean)

-참과 거짓이라고 한다.

*c계열에서는 0false라고 하고 0이 아닌 숫자는 true라고 한다.

c++true and false가 생겼다.

자바에도 true and false가 있다. 그것이 boolean

 

a. boolean

-1byte, 8bit의 공간을 갖는다.

 

논리형 메모리관리

*선언한 변수의 값이 직접 메모리 공간에 들어가 직접 그 메모리 공간에 있는 변수 값으로 동작한다.

 

 

문자열 (string)

문자열은 charcter가 안되는데 문자열은 어떻게 다루는가?

-string으로 다룬다.

-문자열을 다루는 String은 첫글자가 대문자로 시작한다.

-문자열을 다루는 String은 문자열을 대입할 수 있다.

)String str = "ABCDEFG";

-그래서 엄밀히 말하면 기본자료형이 아닌 객체자료형이다.

-4byte 차지 한다. 32bit의 공간을 갖는다.

 

문자열 메모리 관리

*String 메모리 관리는 String 값은 다른 공간에 만들어 놓고 실제로 선언한 변수 str에는 또 다른 공간에 만들어 놓고

str은 String이 가지고 있는 ABCDEFG의 객체 주소자료만으로 동작하게 된다.

*기본자료형은 첫글자가 소문자로 시작한다.

 

분류

이름

바이트수

비고

실수형

float

4 byte

단정도 실수형(유효 자리는 7

double

8 byte

 

논리형

boolean

1 byte

true, false

문자열

string

4 byte

기본자료형이 아닌 객체자료형

 

 

실습

1. 프로젝트 다시 생성해보기

*생성후 해당 프로젝트 class 생성할 때 클래스 이름을 대문자로 쓰는 습관을 들여 놓는 것이 좋다.

*23lines = "내이름“; 으로 변수 변경이 가능하다.

변수에 담은 자료형은 언제든지 변경이 가능하다는 것

+ Recent posts