Java mentoring of samsung scsc 0
Transcript of Java mentoring of samsung scsc 0
“One writes, Run anywhere”
한번 쓰면, 어디서든 실행된다.
1. 변수, 배열(1차원, 2차원, 3차원)
2. 조건문, 반복문
변수타입 변수이름
변수?
값을 저장할 수 있는 공간
int number; 정수형 변수 number를 선언한다.int number = 10; 정수형 변수 number에 10을 담는다.
변수는 데이터를 보관하는 장소(memory)변수는 사용하기 전에 선언되어야 한다. 변수의 선언이란 “이름”과 “타입”을 정해주는 것변수는 적용 범위를 가짐메서드 내부에 선언된 변수는 그 메서드 내부에서만 사용가능메서드 외부에 (클래스 내부) 선언된 변수는 클래스 내에서 사용가능.
1 byte 2 byte 4 byte 8 byte
논리형 boolean
문자형 char
정수형 byte short int long
실수형 float double
참조형 String
기본형, 참조형
변수,상수 그리고 리터럴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 크기를 가진다.
변수,상수 그리고 리터럴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가 존재하는것을 알수없다.
변수,상수 그리고 리터럴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를 상수로 초기화 하였음으로 데이터를바꿀수 없다.
변수,상수 그리고 리터럴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를 상수로 초기화 하였음으로 데이터를바꿀수 없다.
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);
}
}
다양한 변수를넣어보도록 하자!
변수타입 변수이름
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가 필요하다면?
변수타입 변수이름
int[] number = new int[100];
배열?
100개의 int 값을 저장할 수 있는 배열을 생성
0x100 0 0 0 0 0
number[0]
number[1]
number[2]
number[98]
number[99]
변수타입 변수이름
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];
변수타입 변수이름
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];
변수 타입에 따른 기본값
자료형 기본값
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가무엇인지 책에서 찾
아보자!
배열의 초기화(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]
배열의 초기화 (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]
배열의 초기화 (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
배열의 초기화(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
배열의 배열로 구성되어 있음을 알수있다.
배열의 초기화(가변 배열)
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
배열의 배열로 구성되어 있음을 알수있다.
배열의 초기화(가변 배열)
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
배열의 배열로 구성되어 있음을 알수있다.
배열의 초기화(가변 배열)
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
배열의 배열로 구성되어 있음을 알수있다.
조건문(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)”);
}
}
조건문(중첩 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(“김도현.”);
}
}
}
}
조건문(중첩 switch문)
조건이 많을경우 switch문을 사용하는것이 간결!
swich (조건1) {case 값1 :
문장();break;
case 값2 : 문장();break;
default : 문장();
}
조건문(중첩 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(“잘못 입력하셨습니다.”);
}
}
}
반복문(for 문)
반복적으로 수행되도록 할 때 사용
for (초기화;조건식;증감식) {명령();
}
초기화 조건식 수행될 문장 증감식
초기화는 한번만 실행되고, 그 이후부터는 조건식을 만족하는 “조건식 -> 수행될 문장 -> 증감식”을 반복하다가
false가 되면, for문 전체를 빠져나가게 된다.초기화, 조건식, 증감식 모두 생략가능.
생각되면 true로 간주!
반복문(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 유효범위
반복문(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);
}
}
}
반복문(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’);
}
}
반복문(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문이 수행되면 이 부분은 실행되지 않고 반복문을
빠져나간다.
반복문(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문이 수행되면 반복
문의 끝으로 이동한다.
감사합니다!