java mentoring of samsung scsc 0

32
“One writes, Run anywhere” 한번 쓰면, 어디서든 실행된다.

Upload: -

Post on 19-Jul-2015

304 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Java mentoring of samsung scsc   0

“One writes, Run anywhere”

한번 쓰면, 어디서든 실행된다.

Page 2: Java mentoring of samsung scsc   0

1. 변수, 배열(1차원, 2차원, 3차원)

2. 조건문, 반복문

Page 3: Java mentoring of samsung scsc   0

변수타입 변수이름

변수?

값을 저장할 수 있는 공간

int number; 정수형 변수 number를 선언한다.int number = 10; 정수형 변수 number에 10을 담는다.

변수는 데이터를 보관하는 장소(memory)변수는 사용하기 전에 선언되어야 한다. 변수의 선언이란 “이름”과 “타입”을 정해주는 것변수는 적용 범위를 가짐메서드 내부에 선언된 변수는 그 메서드 내부에서만 사용가능메서드 외부에 (클래스 내부) 선언된 변수는 클래스 내에서 사용가능.

Page 4: Java mentoring of samsung scsc   0

1 byte 2 byte 4 byte 8 byte

논리형 boolean

문자형 char

정수형 byte short int long

실수형 float double

참조형 String

기본형, 참조형

Page 5: Java mentoring of samsung scsc   0

변수,상수 그리고 리터럴class PrimitiveExam {

public static void main(String[] ar) {

int i;

}

} 메인 메로리에 변수를 위한 메모리 공간이 할당된다.이때 공간에 이름을 i라고 부여!

class PrimitiveExam {

public static void main(String[] ar) {

int i;

i = 5;

int j = 5;

}

}

변수에 최초로 저장하는 일을 초기화 한다라고 말한다.

데이터를 알리는 키워드! 4byte 크기를 가진다.

Page 6: Java mentoring of samsung scsc   0

변수,상수 그리고 리터럴class PrimitiveExam {

public static void main(String[] ar) {

int i = 1.4;

System.out.println(i);

}

}

출력을 해보자! 1.4가 나오는가?

class PrimitiveExam {

public static void main(String[] ar) {

i = 5;

int i;

System.out.println(i);

}

}

VM은 위에서 아래로 실행함으로 i가 존재하는것을 알수없다.

Page 7: Java mentoring of samsung scsc   0

변수,상수 그리고 리터럴class PrimitiveExam {

public static void main(String[] ar) {

int i = 4;

System.out.println(i);

}

}

4라는 숫자가 리터럴(int형 리터럴)이다.코드상에서 표현되는 모든 숫자, 문자등이 리터럴이다.

키워드는 제외!

class PrimitiveExam {

public static void main(String[] ar) {

final i = 5;

i = 10;

System.out.println(i);

}

}

선언과 동시에 i를 상수로 초기화 하였음으로 데이터를바꿀수 없다.

Page 8: Java mentoring of samsung scsc   0

변수,상수 그리고 리터럴class PrimitiveExam {

public static void main(String[] ar) {

int i = 4;

i = 5;

System.out.println(i);

}

}

출력을 해보자! 4 or 5 무엇이 나오는가?

class PrimitiveExam {

public static void main(String[] ar) {

final i = 5;

i = 10;

System.out.println(i);

}

}

선언과 동시에 i를 상수로 초기화 하였음으로 데이터를바꿀수 없다.

Page 9: Java mentoring of samsung scsc   0

Primitive Typeclass PrimitiveType {

public static void main(String[] ar) {

char ch = ‘A’;

int code = (int)ch;

int code_num = 65;

char ch_num = (char)code;

String hellow = “안녕하세요”;

System.out.println(ch);

System.out.println(code);

System.out.println(code_num);

System.out.println(ch_num);

System.out.println(“////////////////////////////////////////”);

System.out.println(hellow);

}

}

다양한 변수를넣어보도록 하자!

Page 10: Java mentoring of samsung scsc   0

변수타입 변수이름

int number = 10; 정수형 변수 number에 10을 담는다.

배열?

같은 타입의 변수를 하나의 묶으로 다루는것

변수타입 변수이름

int number1 = 10; 정수형 변수 number1에 10을 담는다.int number2 = 10; 정수형 변수 number2에 10을 담는다.int number3 = 10; 정수형 변수 number3에 10을 담는다.int number4 = 10; 정수형 변수 number4에 10을 담는다.int number5 = 10; 정수형 변수 number5에 10을 담는다.int number6 = 10; 정수형 변수 number6에 10을 담는다. .

.

.

.

.

변수 100가 필요하다면?

Page 11: Java mentoring of samsung scsc   0

변수타입 변수이름

int[] number = new int[100];

배열?

100개의 int 값을 저장할 수 있는 배열을 생성

0x100 0 0 0 0 0

number[0]

number[1]

number[2]

number[98]

number[99]

Page 12: Java mentoring of samsung scsc   0

변수타입 변수이름

int[] number; 배열을 선언한다.number = new int[100]; 배열을 생성한다.

배열?

0x100 0 0 0 0 0

number[0]

number[1]

number[2]

number[98]

number[99]

1. int number;

0x100

2. number = new int[100];

Page 13: Java mentoring of samsung scsc   0

변수타입 변수이름

String[] sentance; 배열을 선언한다.sentance = new String[100]; 배열을 생성한다.

배열?

0x100 null null null null null

number[0]

number[1]

number[2]

number[98]

number[99]

1. String sentance;

0x100

2. sentance = new String[100];

Page 14: Java mentoring of samsung scsc   0

변수 타입에 따른 기본값

자료형 기본값

boolean false

char ‘\u0000’

byte 0

short 0

int 0

long 0L

float 0.0f

double 0.0d or 0.0

참조형 변수 null

초기화를 확인후.숫자 뒤의 L, f, d가무엇인지 책에서 찾

아보자!

Page 15: Java mentoring of samsung scsc   0

배열의 초기화(1차원)

int[] number = new int[5];number[0] = 100;number[1] = 90;number[2] = 80;number[3] = 70;number[4] = 60;

5개의 int 값을 저장할 수 있는 배열을 생성

0x100 100 90 80 70 60

number[0]

number[1]

number[2]

number[3]

number[4]

Page 16: Java mentoring of samsung scsc   0

배열의 초기화 (1차원)

int[] number = {100, 90, 80, 70, 60};same!!!

number[0] = 100;number[1] = 90;number[2] = 80;number[3] = 70;number[4] = 60;

5개의 int 값을 저장할 수 있는 배열을 생성

0x100 100 90 80 70 60

number[0]

number[1]

number[2]

number[3]

number[4]

Page 17: Java mentoring of samsung scsc   0

배열의 초기화 (1차원)

String[] number = new String[5];number[0] = new String(“kim”);number[1] = new String(“che”);number[2] = new String(“do”);number[3] = new String(“huny”);number[4] = new String(“2”);

5개의 String 값을 저장할 수 있는 배열을 생성

0x100 0x200 0x300 0x400 0x500 0x600

number[0]

number[1]

number[2]

number[3]

number[4]

kim che do huny 2

Page 18: Java mentoring of samsung scsc   0

배열의 초기화(2차원)

int [][] number = {{100, 90, 80, 70} ,{200, 90, 80, 70} ,{300, 90, 80, 70}};

12개의 int 값을 저장할 수 있는 배열을 생성

0x100

0x200

0x300

0x400

100 90number[0]

number[1]

number[2]

80 70

200 90 80 70

300 90 80 70

배열의 배열로 구성되어 있음을 알수있다.

Page 19: Java mentoring of samsung scsc   0

배열의 초기화(가변 배열)

int [][] number = new int [3][];number[0] = new int[4]; number[1] = new int[4];number[2] = new int[4];

12개의 int 값을 저장할 수 있는 배열을 생성

0x100

0x200

0x300

0x400

100 90number[0]

number[1]

number[2]

80 70

200 90 80 70

300 90 80 70

배열의 배열로 구성되어 있음을 알수있다.

Page 20: Java mentoring of samsung scsc   0

배열의 초기화(가변 배열)

int [][] number = new int [3][];number[0] = new int[4]; number[1] = new int[2];number[2] = new int[3];

12개의 int 값을 저장할 수 있는 배열을 생성

0x100

0x200

0x300

0x400

100 90number[0]

number[1]

number[2]

80 70

200 90 80 70

300 90 80 70

배열의 배열로 구성되어 있음을 알수있다.

Page 21: Java mentoring of samsung scsc   0

배열의 초기화(가변 배열)

int [][] number = new int [3][];number[0] = new int[4]; number[1] = new int[2];number[2] = new int[3];

12개의 int 값을 저장할 수 있는 배열을 생성

0x100

0x200

0x300

0x400

100 90number[0]

number[1]

number[2]

80 70

200 90

300 90 80

배열의 배열로 구성되어 있음을 알수있다.

Page 22: Java mentoring of samsung scsc   0

조건문(if)조건식의 연산결과에 따라 프로그램의 실행흐름을 변경하

기 위하여 사용한다.

if (조건식) {문장();

}

if(조건식) 문장();

if (조건식) {문장(); //true

} else {문장(); // false

}

if (조건식) 문장(); //true

else 문장(); // false

class HellowIf {

public static void main(String[] ar) {

int visitCount = 0;

if (visitCount < 1)

System.out.println(“처음 오셨군요. 방문해주셔서 캄사해용 X)”);

}

}

Page 23: Java mentoring of samsung scsc   0

조건문(중첩 if문)

If문 블록 내에 if문을 사용하는것이 가능하다!

if (조건1) {문장(); //조건1의 연산결과가 true일때 실행!if (조건2) {

문장(); //조건 1 2 모두 true일때 실행!} else {

문장(); //조건 1은 true 2는 false일때 실행}문장(); //조건이 false 일때 실행!

}

class HellowIf {

public static void main(String[] ar) {

int visitCount = 0;

int dohuny = 1;

if (visitCount < 1) {

System.out.println(“처음 오셨군요.”);

if(doHuny == 1) {

System.out.println(“김도현.”);

}

}

}

}

Page 24: Java mentoring of samsung scsc   0

조건문(중첩 switch문)

조건이 많을경우 switch문을 사용하는것이 간결!

swich (조건1) {case 값1 :

문장();break;

case 값2 : 문장();break;

default : 문장();

}

Page 25: Java mentoring of samsung scsc   0

조건문(중첩 switch문)

class HellowSwitch {

public static void main(String[] ar) {

int score = (int) (Math.random() * 10) + 1;

switch(score * 100) {

case 100 :

System.out.println(“100점입니다.”);

break;

case 50 :

System.out.println(“50점입니다.”);

break;

default :

System.out.println(“잘못 입력하셨습니다.”);

}

}

}

Page 26: Java mentoring of samsung scsc   0

반복문(for 문)

반복적으로 수행되도록 할 때 사용

for (초기화;조건식;증감식) {명령();

}

초기화 조건식 수행될 문장 증감식

초기화는 한번만 실행되고, 그 이후부터는 조건식을 만족하는 “조건식 -> 수행될 문장 -> 증감식”을 반복하다가

false가 되면, for문 전체를 빠져나가게 된다.초기화, 조건식, 증감식 모두 생략가능.

생각되면 true로 간주!

Page 27: Java mentoring of samsung scsc   0

반복문(for 문)

class HellowFor {

public static void main(String[] ar) {

int score = (int) (Math.random() * 10) + 1;

for(int i = 0; i < 10; i++) {

System.out.println(i + “ 번 잘생겼내 잘생겼어~”);

}

System.out.println(“잘생겼다! ” + i + “ 번 ” + score);

}

}

변수 i 유효범위

변수 sum 유효범위

Page 28: Java mentoring of samsung scsc   0

반복문(while 문)

조건식과 수행해야할 블록만으로 구성된 반복문

while (조건식) {명령();

}

class HellowWhile {

public static void main(String[] ar) {

int sum = 0;

int i = 0;

while((sum += ++i) <= 100) { //i를 계속 1씩 증가 sum에 더한다.

System.out.println(i + “ – “ + sum);

}

}

}

Page 29: Java mentoring of samsung scsc   0

반복문(do while 문)

While과 비슷하나 블록{}을 먼저수행후 조건식 판단.

do{명령();

} while (조건식);

class HellowWhile {

public static void main(String[] ar) {

System.out.println(“문장을 입력 하세용”);

System.out.println(“입력을 마치려면 y를 입력하세용”);

do {

input = System.in.read();

System.out.print((char)input);

} while(input != -1 && input != ‘y’);

}

}

Page 30: Java mentoring of samsung scsc   0

반복문(break)

현재에서 가장 가까운 반복문 탈출!

class HellowWhile {

public static void main(String[] ar) {

int sum = 0;

int i = 0;

while(true) {

if(sum > 100)

break;

++i;

sum += I;

}

System.out.println(“i = “ + i + “ sum = “ + sum);

}

}

Break문이 수행되면 이 부분은 실행되지 않고 반복문을

빠져나간다.

Page 31: Java mentoring of samsung scsc   0

반복문(continue)

반복문의 끝으로 이동하여 다음 반복으로 이동!

class HellowWhile {

public static void main(String[] ar) {

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

if( i % 2 == 0)

continue;

System.out.println(“i = “ + i + “ sum = “ + sum);

}

}

}

조건식이 true가 되어continue문이 수행되면 반복

문의 끝으로 이동한다.

Page 32: Java mentoring of samsung scsc   0

감사합니다!