JAVA 2011. 5. 31. 23:47
똑같은 명령을 반복 수행 하는 프로그램을 짜기위해 조건문을 무식하게 여러번쓰는건 비효율적이다.

그럴 때를 위해 반복문이란 것을 쓰는데, 자바에서의 반복문은 세가지로, while, do, for문이다.

while 반복문

while문의 기본형식은 다음과 같다.

while ( 조건식 )     ------ 조건식이 true 인지 false인지 판별한다
      실행 부분        ------ 조건식이 true 일 때 수행한다.

while문은 조건식을 판별하여 true이면 실행부분을 수행하고 조건식을 다시 판별하고, 

이런식으로 조건식 > true > 실행부분 무한 반복이다. 한번 돌 때마다 조건식은 다시

계산되지만 계속 참이라면 무한루프에 빠진다. 

class whileTest {
public static void main(String args[]){
int i = 0;
while ( i < 5){
System.out.println(i);
i++;
}
System.out.println("Done.");
}
}
위와 같이 프로그램을 짜면 처음에 i에 0이 들어가고 5미만이므로 while문을 만족하고 

안으로 들어가  System.out.println(i); 를 수행하여 0을 찍고 i++; 로 0에서 1이된다.

그러고 다시 while 조건식으로 가서 참인지 거짓인지 판별하고, 그렇게 0,1,2,3,4가 찍히고

5일 때 false가 뜨며 빠져나와  "Done."이 찍힌다. 

do-while 반복문
 
do-while의 기본형식은 이렇다

do
  실행부분              ----- 조건식이 참 일 동안 반복 실행되는 부분
while(조건식);        ----- 참 또는 거짓 값을 산출할 수 있는 식.

do-while 은 while과 달리 do부분 , 즉 실행부분을 무조건 한번 실행하고 다음부터

조건식으로 참, 거짓을 판별한다. 

class dowhileTest {
public static void main(String args[]){
int i = 0;
do{
System.out.println(i);
i++;
} while ( i < 5);
System.out.println("Done.");
}
}
위와 같이 짜면 일단 무조건 0을 찍고 i++로 i를 1로 만든다음 조건식으로 간다.

뭐 대단한거 같아도 결과는 while과 같은 0,1,2,3,4 찍고 만다.  

System.out.println("Done."); 얘가 while 아랫줄에 있다고 while조건식 읽고

찍히는게아니다. while조건식 판별하고 참이면 do로 올라간다. 

for 반복문

for 문으로 만든 반복문은 주어진 횟수만큼 처리를 반복하거나 배열 항목을 순서대로 처리할 때 

적합하다. 기본형식은 아래와 같다.

for ( 초기화식 ; 조건식 ; 업데이트식)
  실행 부분


어려운 거 같아도, 초기화식은 사용할 값의 초기값, 조건식은 위 while문의 조건식마냥 조건이 들어가고

업데이트 식은 i++ 도는 i-- 등과 같이 변수의 값을 바꾸는 식이 들어간다.

for( int i = 0; i < 10; i++)
   System.out.println(i); 이렇게 말이다.


class forTest {
public static void main(String args[]){
for(int i = 0; i < 5; i++){
System.out.println(i);
}
System.out.println("Done.");
}
}
위와 같다. 결과는 똑같다 0,1,2,3,4 찍히고 Done이다.

향상된 for 문

for문의 카운트가 오로지 배열의 인덱스로만 사용된다면 향상된 for문을 사용할 수 있다.

* 향상된 for문은 JDK 5.0 부터 지원한다.

for ( 변수타입 변수이름 : 배열이름)
   실행부분


for ( int i : arr)
   System.out.println(i); 


이런 형식으로 사용한다면 배열의 항목 수 만큼 실행부분을 반복하는데 매번 반복할 때마다

배열 항목의 값을 변수에 자동으로 대입한다. 예제는 아래와 같다.

class forTest {
public static void main(String args[]){
int arr[] = {10,20,30,40,50};
for(int i : arr){
System.out.println(i);
}
System.out.println("Done.");
}
}
이런식으로 사용하면 저절로 arr[] 에 i 가 들어가서 arr[i] 가 찍힌다.

System.out.println(i); 여기에 i 가 찍힌다고 0,1,2,3,4 이렇게 수행 횟수가 찍히는게 아니다.

향상된 for 문에도 단점은 있는데 여기서 나온 값인 i 는 사용할 수만 있고 바꿀수는 없다.

break 문

위의 세가지 반복문을 빠져나가고 싶으면 빠져나가고 싶은 부분에 break;를 걸어주면 

위에서 수행하고 break;를 만나며 그 반복문을 빠져나오게 된다.

class breakTest {
public static void main(String args[]){
for(int row = 0 ; row <3; row++){
for(int col = 0 ; col < 3; col++){
System.out.println("("+ row+","+col+")");
if((row == 1 )&&(col == 1))
break;
}
}
System.out.println("Done.");
}
}
이렇게 하면 
(0,0)
(0,1)
(0,2)
(1,0)
(1,1)
(2,0)
(2,1)
(2,2)
Done.
.

1,1 일 때 break; 가 걸려 빠져나와 버린다. 그럼 row의 1은 더이상 수행하지 않고 빠져나오고

2로넘어가 나머지를 수행한다. 여기서 중첩된 반복문을 전부 빠져나가는 방법은 이렇다.

앞에 반복문에 라벨을 붙여놓고 break  문에 해당 라벨을 같이 써주면 중간에 반복문이

몇개가 겹쳐있던 라벨이 있는 밖으로 빠져나간다.

loop:
for(int row = 0 ; row < 3; row++){
for(int col = 0 ; col < 3; col++){
System.out.println("("+ row+","+col+")");
if((row == 1 )&&(col == 1))
break loop;
}
}
이렇게 말이다.

반복문을 계속하는 continue 문

기본형식은 이렇다 .

continue;

이 문을 만나면 바로 반복문의 다음번 과정으로 넘어간다, continue 아래에 있는 구문은

수행되지않고 바로 위로 올라가 다음번 반복문을 수행한다.

class continueTest {
public static void main(String args[]){
for(int col = 0 ; col < 10; col++){
if(col == 5)
continue;
System.out.println(col);
}
System.out.println("Done.");
}
}
이렇게 하면 5가 들어올 시 continue를 만나 바로 6으로 넘어가기 때문에

아래 System.out.println(col);가 안찍히게되고 0,1,2,3,4,6,7,8,9, 와같이 

5가 안 찍힌다.

break 문은 라벨을 이용하여 밖의 반복문으로 빠져나왔지만 continue는

라벨을 이용하여 바깥쪽 반복문을 다음번 과정으로 수행할 수 있다.  


길긴 하지만, 프로그램 짜보면서 가장 많이 써본 for문에 대해 다시 개념을 잡게됐다. 

특히 향상된 for문은 잘쓰면 아주 간결하고 깔끔할 것 같다. 사용만 할 수 있는게 

흠이긴 하다..







출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다.

'JAVA' 카테고리의 다른 글

JAVA] 12. 익셉션 처리에 사용되는 try 문  (0) 2011.06.02
JAVA] 11. 매소드 호출문  (0) 2011.06.02
JAVA] 9. 조건문  (0) 2011.05.31
JAVA] 8. 배열의 선언, 생성, 이용  (0) 2011.05.28
JAVA] 7. 여러가지 대입문  (1) 2011.05.26
posted by 젊은쎄오
:
IT Info/신기술 용어 2011. 5. 31. 00:53
소셜 네트워크 게임 (Social Network Game) 또는 소셜 게임 (Social Game)은 페이스북,
마이스페이스, 믹시, 싸이월드 등의 소셜 네트워크 서비스 플랫폼을 기반으로,
사용자의 온라인 인맥과 유대관계를 증진하기 위해 사용자참여 및 관계맺기를 극대화한
새로운 형태의 사회적 인맥 기반의 게임이다.
 게임 자체가 목적인 일반 온라인 게임과는 달리,
손쉬운 인터페이스를 통해 모든 연령층의 사용자를 대상으로 해당 SNS네트워크 내 사용자 간
친밀감과 동질성을 증대시키는 것이 특징이다 - 출처 위키백과


보통 게임은 렙업이나 아이템을 얼마나 좋은 것을 차고있나, 누가 누굴 이기고 등등 

개인적이었던 반면 SNG는 그런 개인적인 것보다 네트워크 내의 사용자와 친밀감과 동질성을

증대하고 인맥관리를 목적으로 한다. 그러기에 꼭 동시에 접속해야만 유대 관계를 유지하는

보통 게임들과 다르게 각기 다른 시간대에 접속하여도 흔적남기는 식으로 인맥을 유지, 추가

할 수 있다. 소셜 네트워크를 기반으로 제작되어 모든 연령이 손쉽게 플레이 할 수 있는데에

초점을 맞추어 남녀노소 누구나 할 수 있도록 쉬운 인터페이스, 아기자기한 UI, 그래픽 등의

특징을 가지고 있다. 스타도 접었는데 이거나 할까 나도.. 
posted by 젊은쎄오
:
JAVA 2011. 5. 31. 00:34
컴퓨터가 기계보다 우수한 이유는 조건에 따라 일을 다르게 할 수 있기 때문이다.

자바에서는 if 문과 switch문으로 조건문을 만들 수 있다.

if 조건문

if 문은 두가지 형식으로 만들 수 있는데 블록이 있냐 없냐이다.

if ( 조건식)
   명령문         

예) if(num1 > num2)
      System.out.println("num1이 더 큽니다");

과 같이 블록이 없는 것과

if ( 조건식 ){
    명령문 
}
 

예) if(num1 > num2){
  System.out.println("num1이 더 큽니다"); 
      } 
과 같이 블록이 있는 것이다. 

if문은 조건식이 참일 때 아래를 수행한다. 

조건문을 만족하지 않을 때에도 일을 수 행하게 하려면 else를 쓰면된다

if(조건식){
  참일 때  명령문
}else{
  거짓일 때 명령문 
}
 
과 같이 사용하면 참 과 거짓일 때를 구분하여 두가지 일을 수행할 수 있다.

if문에 if문을 또 한번 쓸 수있다.

class ifTest {
public static void main(String args[]){
int num1 = 52;
int num2 = 24;
int num3 = 32;
if(num1 > num2) --> 1번
if(num1 > num3) --> 2번
System.out.println("num1이 제일 큽니다");
System.out.println("Done.");
}
}
위와 같이 쓰면 1번이 참이라면 안으로들어가 2번도 검사를 하고 2번도 참이라면 결과값이 출력된다.

dangling else

if문안에 if문사용은 가능하지만 거기다 else까지 넣으면 식이 복잡해진다.

if(num1 > num2)--> 1번
if(num1 > num3)--> 2번
System.out.println("num1이 제일 큽니다");
  else
System.out.println("Done.");

식이 위와 같다면 과연 else가 1번과 짝을 이루는 else인지 2번과 짝을이루는 else인지 

판단하기가 쉽지않은데 이런 else를 dangling else 라고 하는데 danging은

대롱대롱 매달리다라는 의미이다. 자바에선 이 dangling else을 가장 가까운 if문과

짝을 이루라는 규칙이 있기때문에 위에 예제의 2번 if문과 짝을 이루는 else이다.

class dangingelse {
public static void main(String args[]){
int num1 = 152;
int num2 = 173; 
if(num1 > num2) --> 1
if(num1 > 100) -->2
System.out.println("num1 = " + num1 );
else -->3
if(num2 > 100) -->4
System.out.println("num2 = " + num2 );

System.out.println("Done.");
}
}
위 예제는 dangling else를 모르는 사람이 짠

num1과 num2중에 큰 수가 100보다 클 때만 그 값을 출력하는 프로그램이다.

위 예제 에서보면 1을 거친 후 거짓이기 때문에 3번의 else로 빠지겠지 라고 생각하면

dangling else를 모르는거다, dangling else는 가장 가까운 if와 짝을 이루는 것이기 때문에

실질적으론 2번과 짝을 이루는 else이다 , 결과적으로 1번의 if문이 거짓으로 되면

그 안으로 타고들어가지 않고 바로 빠지게되는데 2번의 if문에 접근을 못하니 3번의

else도 당연히 접근을 못한다. 그러므로 1번이 거짓이 되면서 아래 나머지 연산은

모두 수행하지 않고 "Done" 만 찍힌다. 꼭 기억하자 꼭. 

else if 라는 것도 있는데 이는 if문 다음에 와서 다른 조건을 계속 나열하는 것이다 .

class elseif {
public static void main(String args[]){
int num1 = 74;
if(num1 < 10)
System.out.println("num1 = 10미만" );
else if(num1 < 100)
System.out.println("num1 = 10이상 100미만"  );
else if(num1 < 1000)
System.out.println("num1 = 100이상 1000미만"  );
else 
System.out.println("num1 = 100이상"  );
System.out.println("Done.");
}
}

위와 같이 if 다음으로 조건을 주어서 계속 값을 확인하고 그중에 하나라도 맞으면

안의 연산을 수행하고 빠져버린다. 값이 나왔다면 다음 연산을 수행하지 않는다. 

switch  

if문과 같이 식이 참일 때 수행을 하지만 문어다리처럼 여러가지 조건을 만들수 있다.

switch(식){

case 값1:
명령문
break; 

case 값2:
명령문
break;

case 값3:
명령문
break;

default:
명령문
break; 


()안의 식을 계산하고 나서 그에 맞는 값에 따라 case를 통과하고 break;를 만나서

빠져나온다. 식의 결과가 case문 중에 일치하는 문장이 없다면 default에 있는 명령문이

수행된다. 

break;문을 안써도 실행은 되는데 만약 3번 case문에 값을 안썼다면 식의 결과값이

값 3일 때 3번 case문의 명령문을 수행한후 break;가 없기 때문에 아래의 default의

명령문도 수행되어 버린다, 꼭 나쁜것만은 아니지만 깔끔하지 못하다.  

 

'JAVA' 카테고리의 다른 글

JAVA] 11. 매소드 호출문  (0) 2011.06.02
JAVA] 10. 반복문  (0) 2011.05.31
JAVA] 8. 배열의 선언, 생성, 이용  (0) 2011.05.28
JAVA] 7. 여러가지 대입문  (1) 2011.05.26
JAVA] 6. 로컬 변수의 선언과 이용  (0) 2011.05.25
posted by 젊은쎄오
:
JAVA 2011. 5. 28. 00:13
배열이란 열개의 변수가 필요한데 그 변수들이 타입, 목적 등이 비슷하다면 열개의 데이터를 

한 곳에 몰아넣고 변수로 각각 꺼내어 쓸 수 있다. 그 때 쓰는 것이 배열이다.

배열중 가장 단순한 구조가 1차원 배열인데 1차원 배열의 선언은 다음과 같다.

타입 식별자[];(int arr[];)  또는 타입[] 식별자;(int[] arr;) 이다.

하지만 이렇게 선언만 한다고 되는건 아니고 다음과같이 배열을 생성해서 변수에 대입해야한다.

new 타입[크기];(arr = new int[10];) 이렇게 사용해야 한다. 열개의 공간을 만들겠다는 의미이다.

이제 이렇게 만든 배열변수에 값을 넣으려면 그 배열에 몇 번째 인지를 알려주는 인덱스(Index)

값을 넣어주어야 한다. 배열이름[인덱스]; 이렇게 만들고 arr[0] = 12; 이렇게 사용한다. 

예제를 보자

class ArrayExample {
public static void main(String args[]){
int arr[];
arr = new int[10]; // 이렇게 열개의 배열을 생성 했다
arr[0] = 10; // 0번엔 10을
arr[1] = 20; // 1번엔 20을
arr[2] = arr[0] + arr[1]; 2번엔 0번과 1번배열 더한 것을 값으로 대입하였다. 
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}

결과는
10
20
30 으로 나온다.

알아 두고 갈것이 있는데, 왜 로컬변수처럼 선언하지않고 새로 생성을 다시 해줘야하는 이유는

변수를 하나 생성하면 그 변수에 관한 메모리 공간이 만들어지게 되는데

int arr[]; 만 만들면 그야말로 그냥 한 공간 뿐이 만들어지지 않는다. 그렇기 때문에 배열의 

메모리를 만드는 작업을 따로 해줘야하는데 그것이 배열 생성식이다 .

new int[5]; 이렇게 쓰면 다섯개의 공간이 만들어진다. 그럼 위의 배열변수를 선언할 때의

메모리는 어디다쓰냐하면 바로 배열 생성식으로 만든 다섯개의 공간을 참조하려면

참조값이 있어야하는데 이 참조값(reference value)을 담는데에 그 메모리공간을 사용한다.

쉽게말해 arr[0] 의 공간에 12라는 값을 대입했다면 얘를 쓰려할 때 이 12라는 값을 가리키는 

값이 들어가있다. 말이 어려운데 계란 한 판을 가져다 놓았다고 치고, 두번째줄에

첫번째 계란을 가져와라 라고 한다면 이  '두번째줄에 첫번째 계란을 가져와라' 라는 것이

참조값이고, 이 참조값을 담아두는곳이 아까 int arr[]; 여기서 만들어진 메모리이다.

확실히말하면. 참조값이 정확히 얘를 가리키는 주소를 말하는 것은아니다.

다만 우린 그렇게 알고 있으면 되고 나머지는 자바 가상기계가 해준다.

다차원배열도 비슷하다.

타입 식별자[][];(int arr[][];) 또는 타입[][] 식별자;(int[][] arr;) 로 선언한다. 

int[] arr[]; 이것도 되긴된단다. 혼란스러워서 안쓰지만 

2차원 배열의 생성식도 비슷하다. 

new 타입[크기1][크기2]; (arr = new int[10][10]);  이런식이다.


class ArrayExample2 {
public static void main(String args[]){
int arr[][] = new int[10][10];
arr[0][0] = 10;
arr[1][1] = 20;
arr[2][2] = arr[0][0] + arr[1][1];
System.out.println(arr[0][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2][2]);
}
}

역시 같은 
10
20
30 의 결과가 찍힌다. 이런방식으로, 3차원, 4차원 배열이 모두 가능하다.

 * 배열의 초기화와 선언을 한꺼번에 하는 방법.

int arr[] = {10, 20, 30, 40, 50};  이런식으로 한꺼번에 한다. 

class Array1 {
public static void main(String args[]){
int arr[] = {10, 20, 30, 40, 50}; 
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
돌리면 10,20,30,40,50 쭉 찍힌다. 

다차원도 마찬가지이다.

int arr[][] = { {1,2,3}, {4,5,6}, {7,8,9}}; 이런식으로 중괄호로 구분을 지으면 된다 .

마지막으로 배열의 길이를 알아보는 방법인데, 배열이 위 예제처럼 열가지정도면 크기를

알기쉽지만, 복잡하고 긴 로직에선 알기 쉽지않다 그럴땐 배열이름 뒤에 .length를 붙여준다.

class arrayexam {
public static void main(String args[]){
int arr[] = {10, 20, 30, 40, 50}; 
System.out.println(arr.length);
}
}

이렇게 써주면 5 라고 찍힌다, 위에 배열 갯수를 세어보면 다섯개가 맞다.  

배열, 편하다, 잘쓰고있다 고마워
 




출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다. 

'JAVA' 카테고리의 다른 글

JAVA] 10. 반복문  (0) 2011.05.31
JAVA] 9. 조건문  (0) 2011.05.31
JAVA] 7. 여러가지 대입문  (1) 2011.05.26
JAVA] 6. 로컬 변수의 선언과 이용  (0) 2011.05.25
JAVA] 5. 간단한 조건문과 반복문  (0) 2011.05.25
posted by 젊은쎄오
:
JAVA 2011. 5. 26. 22:52
변수를 선언하는 목적은 값을 담아 쓰려는 것인데, 이 값을 담는 명령문을 대입문이라 한다. 

가장 당순한 방법은 = 연산자로 우변의 값을 좌변에 대입하는 식이다.

변수 = 식;  
예) num = 1;  ,
    num1 = num2+ num3;

위와 같이 변수에는 값이 대입될 수 있지만 식이 대입될 수도 있다.



대입문에서는 우변의 식 계산이 다 완료 된 후 좌변으로 대입되기 때문에 

int num = 3;
num = num+2 

이라면 우변의 num에 3이 들어가 3+2 가 된 후 좌변으로 들어가 결과는 num은 5의 값을 가진다

복합 대입 연산자라는 개념도 있는데 이는 += 연산자를 동시에 사용한다 , 

num += 3; 이라면 좌변의 기존 값에 우변의 값을 더한다음 다시 좌변으로 넣는 것이다. 

다르게말해 num = num+3; 과 같은 의미이다.



증가 연산자
감소연산자 개념도 있는데 이는 ++ 또는 -- 이다, 

num++; 과 ++num; 은 원래 num 에 1을 증가 시키고 다시 num 에 대입한다.

num--; 와 --num; 은 반대로 num에 -1을 한 후 다시 num에 대입한다. 

복습하는 기분으로 !  






출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다. 

'JAVA' 카테고리의 다른 글

JAVA] 9. 조건문  (0) 2011.05.31
JAVA] 8. 배열의 선언, 생성, 이용  (0) 2011.05.28
JAVA] 6. 로컬 변수의 선언과 이용  (0) 2011.05.25
JAVA] 5. 간단한 조건문과 반복문  (0) 2011.05.25
JAVA] 4. 변수의 선언문과 대입문  (0) 2011.05.25
posted by 젊은쎄오
:
IT Info/신기술 용어 2011. 5. 26. 14:27

RSS(Really Simple Syndication)는 뉴스나 블로그 사이트에서 주로 사용하는 콘텐츠 표현 방식이다. 웹 사이트 관리자는 RSS 형식으로 웹 사이트 내용을 보여 준다. 이 정보를 받는 사람은 다른 형식으로 이용할 수 있다.RSS 리더에는 웹기반형과 설치형이 있다. 웹기반형 리더는 간단한 계정등록으로 어디에서든 이용할 수 있다는 장점을 가지고 있다.

RSS가 등장하기 전에는 원하는 정보를 얻기 위해 해당 사이트를 직접 방문하여야 했으나, RSS 관련 프로그램(혹은 서비스)을 이용하여 자동 수집이 가능해졌기 때문에 사용자는 각각의 사이트 방문 없이 최신 정보들만 골라 한 자리에서 볼 수 있다.

또한 RSS는 팟캐스팅과 같은 미디어 배포의 용도로도 사용된다. RSS 2.0 의 〈enclosure〉태그 내에 MP3 나 MOV 등의 미디어 파일을 첨부하여 배포하면, 팟캐스팅 클라이언트를 이용해 파일을 내려 받아 감상할 수 있다.

RSS 2.0은 공식적으로 완료된 것으로 선언되었으며, 하버드 대학교가 저작권을 보유하고 있다. - 자료출처 위키백과

처음에 들었을 땐 구독하고싶은 블로그를 등록해놓으면 내 블로그로 통보가

오는줄 알았다. 그래서 아, 받아보는 사람도 블로그가 있어야되나 싶었는데

알아보니 Reader에 쌓이는 거였다. 대표적으로 Google Reader 가 있는데 접속하고 

구독하기로 해당 블로그를 등록하면 등록한 블로그에서 포스팅 되는 족족

이 리더 페이지에 쌓인다, 사용자는 구글에 로그인을해서 리더페이지만 보면

내가 관심에 둔 블로그들의 새 글을 한 눈에 볼 수 있다. 좋다 , 애용하게 될거같다. 

posted by 젊은쎄오
:
JAVA 2011. 5. 25. 21:57
변수는 매소드 안에 생성 할 수도있고 밖에 생성 할 수 도 있는데 매소드 안에 생성하는 변수를 

로컬 변수(local variable)라 한다.

public class Loacltest {
int var = 3;
public static void main(String args[]){
int num;
num = 10 + 20;
System.out.println(num);
}
}

바로 위 소스에 int num;이 main이라는 매소드 안에 있기 때문에 로컬변수이다 

매소드 밖에 있는 int var = 3; 은 로컬 변수가 아니다.  

로컬 변수도 변수이기에 선언을 반드시 해야하는데 두가지 방법이 있다.

1. 타입 식별자;                            2. 타입 식별자 = 초기값;  
예)                                            예)
int num;                                     int num1 = 0;
float fl;                                       int num2 = 1;
String str;                                   String str = "Hello" ;

이런 식의 방법이 있고, 같은 타입이라면 

int num1, num2;
String aa="hello", bb="JAVA"; 등 과 같이 한번에 선언 할 수도 있다. 

자바에서 사용되는 기초 타입


이 중 String 타입을 제외한 나머지는 프리미티브 타입(primitive type)이라고 한다.

로컬변수의 사용방법은 크게 두가지인데 하나는 변수에 값을 대입하는 것이고 하나는

그 값을 가져다 사용하는 것이다. 로컬 변수를 가져다 쓸 때에는 초기 값이 있어야한다

아래 처럼 초기값이 없는 상태에서 가져다 쓰면 오류가 난다.

int num;
System.out.println(num); 이와 같이 코딩을 한다면 에러가 난다.  

또한 생성한 매소드 밖에서 로컬변수를 사용할 때에도 에러가 난다.



* 값을 바꿀 수 없는 final 변수  

값이 변할 수 있기에 변수라고 하지만, 변수의 값을 바꿀 수 없게 만들 수도 있는데

그 때 쓰는것이 final 키워드 이다.

final int num = 3;

이렇게 하면 딱 한번만 값을 대입 할 수 있다.

 





출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다. 
posted by 젊은쎄오
:
JAVA 2011. 5. 25. 21:19
기계보다 컴퓨터가 좋은 이유중에 하나는 바로 조건에 따라 다른일을 할 수 있다는 것이다. 

이러한 조건에 따라 주어진 일을 하는 명령문을 조건문(conditional statement)라고 하며

자바에서는 키워드인 if 를 이용하여 조건문을 만들수 있다.

public class iftest {
public static void main(String args[]){
int num;
num = 10 + 20;
if (num >10)
System.out.println("계산 결과가 10보다 큽니다");
}
}

위를 보면 num에 30을 대입하고 바로 결과값을 찍지 않고 if (num >10)를 써주었다. 

의미는 'num이 0보다 크다면 아래를 수행하라' 이다. 조건에 맞지않으면 그냥 빠져나온다. 

추가로 명령문 안에 포함된  System.out.println("계산 결과가 10보다 큽니다"); 이라는 

명령문은 부명령문(substatement) 라고 부른다.


주어진 처리를 반복해서 열번을 해야한다고 조건문을 열개를 주는 것은 비효율적이기 때문에

이때는 주어진 일을 반복하는 반복문(iterative statement)을 써야 한다. 


public class whiletest {
public static void main(String args[]){
int num;
num = 0;
while (num < 5){
System.out.println("Hello");
num = num + 1;
}
}
}

일단 num =0; 이기 때문에 num에는 0이들어가 있고 while문에 들어간다.  

while (num < 5) 조건을 보면 5 미만 까지의 의미고 그건 0,1,2,3,4 의 값만이 while문의 

조건을 충족 시키는것이 된다.  num 이 처음 들어가면 0 이기 때문에 조건을 만족하고 

while안으로 들어간다 그러면서  System.out.println("Hello"); 으로인해 Hello 가 한번 찍히고

num = num + 1; 을 지나기 때문에 num에 +1을 한 정수가 num 주머니로 들어간다, 

즉 0이었던 num주머니가 1로 바뀐다. while문은 조건을 만족한다면 계속 돌기 때문에

1,2,3,4 까지 돌며 Hello를 다섯번 찍어낸다 그러고 num이 5가 되면 조건에 만족하지 않기에

밖으로 빠져나온다. 맨날 헷갈리던게 num = num + 1 이었다. num이 0일때를 보면

0 = 0+1 과 같다. 그걸 해석하면 뒤에 0+1이 앞에 0에 대입이 되는건데 자꾸 수학의 이퀄이랑

착각을 해서 머리아팠던 기억이 난다.. 





출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다. 
posted by 젊은쎄오
:
JAVA 2011. 5. 25. 20:31
앞에 첫번째 글을 보면 System.out.println("Hello, Java"); 를 써서 Hello, Java를 출력해보았다.

하지만 이렇게 직접 써넣는것보다 변수를 이용하여 보다 효율적인 프로그래밍을 할 수 있다.

자바프로그램에서는 변수를 사용하기 전에 먼저 변수 선언을 해야한다. 처음 자바를 공부할 때

이 선언이라는 개념을  얘를 써도 되겠냐 허락을 받는 문장이라 생각하며 외웠다. 흐흐

변수 선언이란, 이 변수의 이름과 타입을 정하여 이런 변수를 쓰겠다고 컴퓨터에게 알리는 것으로

변수 선언을 해야만 그 변수를 그 타입에 맞게 사용할 수 있다.

예를 들어 num이라는 이름의 정수 변수를 사용하고 싶다면

int num; 이라고 선언을 해야한다 앞에 int 정수타입을 의미하고 num은 그 정수타입의 변수이름이다.

이렇게 변수를 선언하는 명령문을 선언문(declaration statement)라고 한다.

변수를 선언하고 이 변수에 값을 담을 수 있다. 변수는 주머니 같은 개념으로 값을 담을 수 있는데

이와같은 개념을 대입이라고 하며 = 기호를 사용한다.

num = 10 + 20; 을 보면 아까만든 정수 변수 num 에 10과 20을 더한 정수를 넣는다는 소리다

결과적으로 num엔 30이 들어가고 이 넘을 System.out.println(num); 이렇게 찍으면 

화면에 30이 출력된다. 처음 봤을 때 변수를 변하는 수로 외웠던 기억이.. -_-변하니까

무튼, 이런식으로 변수라는 주머니를 만들려면 그 안에 들어가는 데이터의 타입을 

문자열이면 String, 정수면 int 이런식으로 선언하고 사용해야 하며 

그 변수에 값을 대입했다면 이제부턴 그 변수를 가지고 쓰면 된다. 



  출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다.
posted by 젊은쎄오
:
JAVA 2011. 5. 25. 19:46
자바에서는 세가지의 단어의 종류를 사용한다. 미리 약속된 의미를 갖는 키워드(Keyword) 와 특별한 

상수가 표현하는단어, 그리고 마지막으로 클래스, 매소드, 변수등에 붙이는 단어이다.

class, public, void 등과 같은 클래스나, 매소드 앞에 써주어야 할,  자바언어를 만든사람들이 

미리 정해놓은 것이 키워드이다. 종류는 아래와 같다.

<자바에서 사용하는 키워드>



 <자바에서 사용하는 상수값을 표현하는 단어>




이와 달리 클래스, 매소드, 변수에 붙이는 이름처럼 프로그래머가 나름 정할 수 있는 이름을 

식별자(identifier)라고 하며, class HelloJAVA 에 HelloJAVA, public void sum(); 에 sum이 

식별자에 해당한다, 프로그래머 마음대로 이름을 정할 수 있다. 관련있는 단어나 의미로 정하는게 바람직하다

식별자는 임의로 정할 수 있는 만큼, 같은 단어를 쓰는 상황도 나온다, 그럴 때는 그 식별자의 

소속을 쭉 앞에 나열해야 하는데 우선 구분짓는 것은 온점(.)을 사용한다. 예를들어

같은 사무실이라도 경기도.의정부시.사무실 과 경기도.양주시.사무실 이런식으로 말이다

실제 코드에서는 System.out.println이다 System은 클래스이름, out은 그 클래스에 속한 변수의이름,

println은 그 변수에 속하는 매소드 이름이다.


기호 쪽을 보면 (),{},[] 등으로 영역을 구분하기 위한 기호와 System.out.println("Hello"); 를 보면

" " 로 싸여있는 텍스트를 자바에서는 문자열(String)이라고 부르고 이 안은 한덩어리로 보기때문에

띄어쓰기를 하던 한,영문을 섞어쓰던 생각할 필요가 없다,

세미콜론(;) 은 문장의 마지막을 뜻한다. 한문장이 끝나면 꼭 찍어줘야한다, 안찍으면 에러가난다

기본적인 것들이니 훑고 지나가면 될것같다. 







출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다. 

posted by 젊은쎄오
: