SlideShare a Scribd company logo
“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 Type
class 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문이 수행되면 반복
문의 끝으로 이동한다.
감사합니다!

More Related Content

What's hot

파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311
Yong Joon Moon
 
Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713
Yong Joon Moon
 
파이썬 sqlite 이해하기
파이썬 sqlite 이해하기파이썬 sqlite 이해하기
파이썬 sqlite 이해하기
Yong Joon Moon
 
파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229
Yong Joon Moon
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815
Yong Joon Moon
 
Python Programming: Function
Python Programming: FunctionPython Programming: Function
Python Programming: Function
Chan Shik Lim
 
파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301
Yong Joon Moon
 
파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301
Yong Joon Moon
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function
건희 김
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈
Yong Joon Moon
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
SeongHyun Ahn
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기
Yong Joon Moon
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229
Yong Joon Moon
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
Yong Joon Moon
 
Haskell study 10
Haskell study 10Haskell study 10
Haskell study 10
Nam Hyeonuk
 
Python Sympy 모듈 이해하기
Python Sympy 모듈 이해하기Python Sympy 모듈 이해하기
Python Sympy 모듈 이해하기
Yong Joon Moon
 
Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815
Yong Joon Moon
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131
Yong Joon Moon
 
Jupyter notebook 이해하기
Jupyter notebook 이해하기 Jupyter notebook 이해하기
Jupyter notebook 이해하기
Yong Joon Moon
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
Yong Joon Moon
 

What's hot (20)

파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311
 
Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713Processing 기초 이해하기_20160713
Processing 기초 이해하기_20160713
 
파이썬 sqlite 이해하기
파이썬 sqlite 이해하기파이썬 sqlite 이해하기
파이썬 sqlite 이해하기
 
파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229파이썬+함수이해하기 20160229
파이썬+함수이해하기 20160229
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815
 
Python Programming: Function
Python Programming: FunctionPython Programming: Function
Python Programming: Function
 
파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301
 
파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301파이썬+정규표현식+이해하기 20160301
파이썬+정규표현식+이해하기 20160301
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기
 
파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229파이썬+함수 데코레이터+이해하기 20160229
파이썬+함수 데코레이터+이해하기 20160229
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
Haskell study 10
Haskell study 10Haskell study 10
Haskell study 10
 
Python Sympy 모듈 이해하기
Python Sympy 모듈 이해하기Python Sympy 모듈 이해하기
Python Sympy 모듈 이해하기
 
Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815
 
파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131파이썬+객체지향+이해하기 20160131
파이썬+객체지향+이해하기 20160131
 
Jupyter notebook 이해하기
Jupyter notebook 이해하기 Jupyter notebook 이해하기
Jupyter notebook 이해하기
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 

Similar to Java mentoring of samsung scsc 0

2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3
ssuseraf62e91
 
Example
ExampleExample
Example
유석 남
 
[NEXT 프연 Week3] C# Data Type
[NEXT 프연 Week3] C# Data Type[NEXT 프연 Week3] C# Data Type
[NEXT 프연 Week3] C# Data TypeYoung-Ho Cho
 
Python Programming: Type and Object
Python Programming: Type and ObjectPython Programming: Type and Object
Python Programming: Type and Object
Chan Shik Lim
 
C언어 세미나 - 배열
C언어 세미나 - 배열C언어 세미나 - 배열
C언어 세미나 - 배열
SeungHyun Lee
 
게임프로그래밍입문 5주차
게임프로그래밍입문 5주차게임프로그래밍입문 5주차
게임프로그래밍입문 5주차
Yeonah Ki
 
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
유익아카데미
 
C Language For Arduino
C Language For ArduinoC Language For Arduino
C Language For Arduino
영욱 김
 
5장 객체와클래스
5장 객체와클래스5장 객체와클래스
5장 객체와클래스
SeoYeong
 
게임프로그래밍입문 3주차
게임프로그래밍입문 3주차게임프로그래밍입문 3주차
게임프로그래밍입문 3주차
Yeonah Ki
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형
Hyosang Hong
 
Java_02 변수자료형
Java_02 변수자료형Java_02 변수자료형
Java_02 변수자료형
Hong Hyo Sang
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
성일 한
 
2 1. variables & data types
2 1. variables & data types2 1. variables & data types
2 1. variables & data types웅식 전
 
Swift 0x0e 초기화
Swift 0x0e 초기화Swift 0x0e 초기화
Swift 0x0e 초기화
Hyun Jin Moon
 
읽기 좋은 코드가 좋은 코드다 Part one
읽기 좋은 코드가 좋은 코드다   Part one읽기 좋은 코드가 좋은 코드다   Part one
읽기 좋은 코드가 좋은 코드다 Part oneJi Hun Kim
 

Similar to Java mentoring of samsung scsc 0 (20)

2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3
 
Example
ExampleExample
Example
 
C review
C  reviewC  review
C review
 
[NEXT 프연 Week3] C# Data Type
[NEXT 프연 Week3] C# Data Type[NEXT 프연 Week3] C# Data Type
[NEXT 프연 Week3] C# Data Type
 
3주차 스터디
3주차 스터디3주차 스터디
3주차 스터디
 
Python Programming: Type and Object
Python Programming: Type and ObjectPython Programming: Type and Object
Python Programming: Type and Object
 
C언어 세미나 - 배열
C언어 세미나 - 배열C언어 세미나 - 배열
C언어 세미나 - 배열
 
게임프로그래밍입문 5주차
게임프로그래밍입문 5주차게임프로그래밍입문 5주차
게임프로그래밍입문 5주차
 
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
코딩인카페 C&JAVA 기초과정 C프로그래밍(3)
 
C Language For Arduino
C Language For ArduinoC Language For Arduino
C Language For Arduino
 
5장 객체와클래스
5장 객체와클래스5장 객체와클래스
5장 객체와클래스
 
게임프로그래밍입문 3주차
게임프로그래밍입문 3주차게임프로그래밍입문 3주차
게임프로그래밍입문 3주차
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Java 변수자료형
Java 변수자료형Java 변수자료형
Java 변수자료형
 
Java_02 변수자료형
Java_02 변수자료형Java_02 변수자료형
Java_02 변수자료형
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
 
2 1. variables & data types
2 1. variables & data types2 1. variables & data types
2 1. variables & data types
 
Swift 0x0e 초기화
Swift 0x0e 초기화Swift 0x0e 초기화
Swift 0x0e 초기화
 
강의자료3
강의자료3강의자료3
강의자료3
 
읽기 좋은 코드가 좋은 코드다 Part one
읽기 좋은 코드가 좋은 코드다   Part one읽기 좋은 코드가 좋은 코드다   Part one
읽기 좋은 코드가 좋은 코드다 Part one
 

Java mentoring of samsung scsc 0

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

Editor's Notes

  1. 우선 i 라는 단어를 먼저 보자. i 는 내가 임의로 만든 변수의 이름이다. 이렇듯 변수의 이름은 프로그래머가 나름대로 만들 수 있다. 위 5번째 줄이 실행됨으로써 메인 메모리에 변수를 위한 메모리 공간이 할당된다. 이때 할당되는 공간에 이름을 i 라고 부여하는것이다. 그렇다면 왜 굳이 변수에 이름을 부여해야할까? 프로그램을 개발한다는것은 데이터를 저장하고 계산한다는것과 같은 말이다. 즉, 모든 프로그램은 데이터의 저장과 계산으로 시작하고 끝나게 되어있다. 그런데, 데이터를 메모리에 저장했다면 저장한 데이터를 언제든지 다시 불러올수 있어야할것 아니겠는가? 만약 메모리 공간에 이름이 부여되지 않았다면, 불러올 방법이 없는것이다. 하지만 이름이 부여되었다면, 그 이름을 통해서 데이터를 불러올 수 있다. 현재 우리는 변수를 할당하는 방법까지만 알고 있다. (일반적으로 변수의 할당이라고 하지않고 변수의 선언이라고 한다 이유는 소스코드상에 int i 를 입력했다고 해서 메인 메모리에 변수가 할당되는게 아니라, 소스코드가 가상머신에 의해서 실행될때 할당되기 때문이다) 그럼 이제 변수에 데이터를 저장하는 방법을 보이겠다.
  2. 우선 i 라는 단어를 먼저 보자. i 는 내가 임의로 만든 변수의 이름이다. 이렇듯 변수의 이름은 프로그래머가 나름대로 만들 수 있다. 위 5번째 줄이 실행됨으로써 메인 메모리에 변수를 위한 메모리 공간이 할당된다. 이때 할당되는 공간에 이름을 i 라고 부여하는것이다. 그렇다면 왜 굳이 변수에 이름을 부여해야할까? 프로그램을 개발한다는것은 데이터를 저장하고 계산한다는것과 같은 말이다. 즉, 모든 프로그램은 데이터의 저장과 계산으로 시작하고 끝나게 되어있다. 그런데, 데이터를 메모리에 저장했다면 저장한 데이터를 언제든지 다시 불러올수 있어야할것 아니겠는가? 만약 메모리 공간에 이름이 부여되지 않았다면, 불러올 방법이 없는것이다. 하지만 이름이 부여되었다면, 그 이름을 통해서 데이터를 불러올 수 있다. 현재 우리는 변수를 할당하는 방법까지만 알고 있다. (일반적으로 변수의 할당이라고 하지않고 변수의 선언이라고 한다 이유는 소스코드상에 int i 를 입력했다고 해서 메인 메모리에 변수가 할당되는게 아니라, 소스코드가 가상머신에 의해서 실행될때 할당되기 때문이다) 그럼 이제 변수에 데이터를 저장하는 방법을 보이겠다.
  3.  변수에 데이터를 저장하려는데 메모리에 저장할 데이터가 없다면 무엇을 어떻게 저장할수있겠는가?
  4. 우선 i 라는 단어를 먼저 보자. i 는 내가 임의로 만든 변수의 이름이다. 이렇듯 변수의 이름은 프로그래머가 나름대로 만들 수 있다. 위 5번째 줄이 실행됨으로써 메인 메모리에 변수를 위한 메모리 공간이 할당된다. 이때 할당되는 공간에 이름을 i 라고 부여하는것이다. 그렇다면 왜 굳이 변수에 이름을 부여해야할까? 프로그램을 개발한다는것은 데이터를 저장하고 계산한다는것과 같은 말이다. 즉, 모든 프로그램은 데이터의 저장과 계산으로 시작하고 끝나게 되어있다. 그런데, 데이터를 메모리에 저장했다면 저장한 데이터를 언제든지 다시 불러올수 있어야할것 아니겠는가? 만약 메모리 공간에 이름이 부여되지 않았다면, 불러올 방법이 없는것이다. 하지만 이름이 부여되었다면, 그 이름을 통해서 데이터를 불러올 수 있다. 현재 우리는 변수를 할당하는 방법까지만 알고 있다. (일반적으로 변수의 할당이라고 하지않고 변수의 선언이라고 한다 이유는 소스코드상에 int i 를 입력했다고 해서 메인 메모리에 변수가 할당되는게 아니라, 소스코드가 가상머신에 의해서 실행될때 할당되기 때문이다) 그럼 이제 변수에 데이터를 저장하는 방법을 보이겠다.