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 젊은쎄오
: