블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total633,817
Today41
Yesterday88

'array'에 해당되는 글 4건

  1. 2010.07.17 배열의 배열
  2. 2010.07.15 배열만 알아도 한단계 업그레이드!
  3. 2010.05.03 Arrary 타입 변수 사용하기.
  4. 2010.05.01 PHP 의 변수.
우리가 살고있는 세계를 3차원이 세계라고 한다. 이것은 가로, 세로, 높이의 세가지로 우리가 인지할 수 있는 모든것을 표현할 수 있음을 의미한다. 점으로만 이루어진것은 1차원, 선과 면으로 이루어진것은 2차원, 높이가 추가되어 비로소 3차원이 된다. 차원수가 높다는 것은 그만큼 표현할 수 있는 것이 많아지는 것을 의미한다. 배열도 마찬가지로 차원이 높아질 수록 표현할 수 있는 것이 더욱 많아지게 된다.


이차원 배열.
이미 알고 있는 일차원 배열의 선언은,

자료형[ ] 변수명 = new 자료형[배열의 크기];

와 같은 형태이다. 이것을 1차원의 일렬로 늘어서있는 선과 비교한다면, 자료가 몇번째에 서있는가를 표시하는 것이다. 선언된 배열을 사용하기 위해서 '변수명[인덱스]' 의 형태를 사용하게 되는데, 인덱스가 몇번째를 알려주는 것이다. 인덱스가 0이면 첫번째, 1이면 두번째로 들어있는 데이터를 사용하겠다는 것이다. 이처럼 1차 배열은 어쩔 수 없이 한줄로 늘어선 데이터밖에는 처리할 수 없는 것이다. 2차원으로 표현되는 면을 생각해 보자. 면에서는 가로의 위치와 세로의 위치로 좌표값을 표현할 수 있다. 행렬과 같은 의미이다. 여러 사람들이 모여서 열을 맞추어 서 있을때, 몇번째 줄 몇번째 사람이라고 표현할 수 있듯이, 행과 열의 두가지를 표현할 수 있다면 이차원의 공간을 표현하는 것이 가능하다. 더 나아가서 이해를 해보면, 몇번째 줄에서 알 수 있듯이 1차로 표현할 수 있는 줄이 여러개로 늘어난것이 2차로 공간의 확장이 이루어지는 것이다. 이것은 배열에서 2차원 배열이라고 하여 다음과 같이 선언하고 사용할 수 있다.

자료형[ ][ ] 변수명 = new 자료형[행의 크기][열의 크기];
변수명[행 인덱스][열 인덱스];

매우 간단하다. 단지 배열안에 배열을 추가한 것 뿐이다.


다차원 배열.
이러한 형식으로 배열의 차원을 2차원 3차원으로 확장하는 것이 가능하다. 4차원 배열도 가능하지만, 그것을 개발의 입장에서 오히려 이해를 더욱 힘들게 만드므로 3차원 이상의 배열의 사용은 그리 권장하는 방법이 아니다. 다차원 배열을 선언하고 사용하기 위해서는 해당 차원수 만큼 인덱스를 늘려서 사용하면 된다. 3차원은 '[ ][ ][ ]' , 4차원은 '[ ][ ][ ][ ]' 와 같은 형식으로 사용이 가능하다.

'Dev Center > JAVA start' 카테고리의 다른 글

지속가능한 힘. while, do while  (0) 2010.07.19
이것 아니면 저것. if ~ else 문  (0) 2010.07.18
배열의 배열  (0) 2010.07.17
getter 와 setter.  (1) 2010.07.16
배열만 알아도 한단계 업그레이드!  (0) 2010.07.15
클래스를 만들고 사용하기.  (2) 2010.07.13
Posted by seanhigher

댓글을 달아 주세요

다양한 데이터 변수들을 선언하고 사용하다보면, 그리고 또 사용하고 만들어보면.... 수도 없이 많아지는 것을 알 수가 있다. 특히 한 학급의 학생들의 이름을 저장하기 위한 변수를 선언한다면 더욱 그렇다. 배열은 동일한 자료형을 변수를 처리하는데 좀더 효과적인 방법이다.


배열?
한반에 30명이 되는 학생들의 이름을 변수로 저장을 해야 한다. 그렇다면 다음과 같이 표현을 할 수 있을 것이다.

String name1 = "김철수";
String name2 = "이영희";
String name3 = "김개똥";
... ...
String name30 = "홍길동";

그래도 30이라는 숫자는 해볼만 하다. 하지만 한 반의 학생이 100명 1000명 그 이상이 된다면 쉽지 않을 것이다. 이렇게 동일한 형태이면서 많은 수의 자료들을 쉽게 관리할 수 있는 방법이 있다. 바로 배열을 사용하는 것이다. 배열은 동일한 형태의 자료들이 일렬로 나열되어 있는 것이다. 위에서 30명이나 되는 학생들을 배열로 표현을 하면 아래와 같이 나타낼 수 있다.

String[] name = new String[] {"김철수", "이영희", "김개똥", ... ... ,"홍길동"};


배열을 표현하는 다른 방법.
이렇게 배열로 선언을 하고나면 훨씬 더 보기가 좋아진다. 만일 학생의 수가 30명인것은 알겠는데, 모두의 이름을 알지 못할때는 다음과 같이 배열의 크기만 선언을 하는 방법도 있다.

String[] name = new String[30];

그리고 그 크기도 모른다면 배열만 선언을 해줄 수도 있다.

String[] name;
name = new String[30];

만일 배열 변수만을 선언해 주었을 경우에는 배열 변수를 사용하기 전에 반드시 'name = new String[30]' 과 같은 초기화 과정을 거처야 사용을 하는 것이 가능하다.


배열 변수를 사용하는 방법.
이렇게 선언된 배열 변수를 사용하기 위해서는 배열의 인덱스 값을 통해 접근하고 사용할 수 있다. 배열이라는 자료형은 동일한 형태의 자료가 나열되어 있는 모습을 갖기 때문에 처음부터 마지막 데이터까지 순차적인 순서 번호를 갖는데 이것이 배열의 인덱스 값이다. 위에서 선언한 배열변수 'name' 으로 홍길동이라는 이름을 출력하고 싶다면 다음과 같이 표현할 수 있다.

System.out.println(name[29]);

"홍길동" 이라는 변수는 name 이라는 변수에 30번째 데이터로 들어가기 때문에 30이라는 순서번호를 갖게 되는 것이다. 헌데, 왜 30이 아닌 '29'의 인덱스 값을 갖게 되는 것일까? 그것은 배열의 인덱스번호가 0번부터 시작하기 때문이다. 0번부터 시작해서 30번째의 수는 30이 아닌 '29'인 것이다.


모든 클래스에 사용가능한 배열
배열은 자바에서 존재하는 모든 자료형, 클래스의 형태에서 사용이 가능하다. 만일 강아지라는 클래스를 만들고, 1000마리의 강아지를 만들고 싶다면,

강아지[] dog = new 강아지[1000];

와 같은 형태로 배열을 선언하고 각각의 인덱스 값으로 접근을 하여 선언을 하는 것이 가능하다.

'Dev Center > JAVA start' 카테고리의 다른 글

배열의 배열  (0) 2010.07.17
getter 와 setter.  (1) 2010.07.16
배열만 알아도 한단계 업그레이드!  (0) 2010.07.15
클래스를 만들고 사용하기.  (2) 2010.07.13
자바의 기본 형태와 접근 수정자.  (0) 2010.07.12
연산자의 분류와 우선순위  (0) 2010.07.03
Posted by seanhigher

댓글을 달아 주세요

배열은 데이터를 저장하는데 있어서 매우 유용한 방법중의 하나이다. 데이터의 순서와 인덱스를 이용하여 같은 종류나, 묶어두어야 할 자료들을 손쉽게 구분이 가능하게 할 수 있다. 변수 형태의 구분이 없는 PHP 에서는 더욱더 유연하고 다양하게 배열의 변수를 사용할 수 있다.



Array 타입의 변수.
배열은 키(key)와 값(value)의 쌍으로 구성되어 있다. 배열을 구성하는 키는 정수형과 문자열로 표현이 가능하다. 특정한 문자열을 지정하지 않을 경우 '0' 부터 차례대로 키값을 가지게 되는데 이를 인덱싱 된 배열이라고 부른다. 배열의 키가 문자열의 형태로 된 첨자를 가지고 있다면 연관 배열이라고 한다.

<?
  $people[0] = "Betty";          // 인덱싱 배열(첫번째 원소)
  $people[1] = "Jane";          // 인덱싱 배열(두번재 원소)
  $people[2] = "Steven";       // 인덱싱 배열(세번째 원소)

  $people['man'] = "Charley";          // 연관 배열(key = 'man')
  $people['woman'] = "Grace";        // 연관 배열(key = 'woman')
?>

배열은 일반적인 변수형과는 근본이 다르다. 정수형, 실수형, 문자형과 같은 변수형은 기본적인 타입에 속하지만, 배열은 이 기본 형태의 데이터를 조금더 발전시킨 형태라고 할 수 있다. 또한, 키와 값이라는 쌍으로 이루어져 있기 때문에 일반적인 변수의 사용과는 조금은 다른 형태를 취하게 된다.

<?
  $subject = array(0 => "국어", 1 => "수학", 2 => "영어", 3 => "사회");
  $score = array('korean' => '89', 'math' => '93', 'society' => '87');
  $people = array('Betty', 'Jane', 'Steven');
?>

배열변수 '$subject' 같이 키가 숫자로 되어 있는 인덱싱 배열의 경우는 $subject[0], $subject[1] 과 같이 숫자의 첨자로 '국어', '수학' 과 같은 변수값에 접근 할 수 있다. '$score' 는 키가 문자열로 이루어져있는 연관배열은 'korean', 'math' 와 같이 문자열로 이루어진 첨자를 사용할경우엔 $score['korean'], $score['math'] 와 같은 방법으로 그 값인 89, 93 에 접근하여 사용할 수 있다. 만일 '$people' 와 같이 키를 선언하지 않은채로 데이터값만 갖는 경우에는 자동적으로 '0' 부터 차례대로 숫자키가 부여된 인덱싱 배열이 된다. 'Betty' 의 값에 접근하고자 한다면 $people['0']이 되며, 'Jane'에 접근하려고 한다면 $people['1'] 을 통해서 접근이 가능하게 된다.


배열을 사용하는 또 하나의 방법.
배열을 사용하게 될 경우에는 배열을 선언하면서, 그 값을 입력해 주어야 한다. 하지만, 그 값이 완전히 준비되어 있지 않을 경우에는 배열의 각 원소별로 값을 정해줄 수 있다.

<?
  $people[] = "Betty";
  $people[] = "Jane";
  $people[] = "Steven";
?>



배열의 배열, 다차원 배열
배열을 더 유용하게 만드는 것중 하나는 배열을 중첩하여 사용이 가능하다는 것이다. 물론 너무 많은 중첩을 하게 된다면 PHP를 해석하는 파서에 무리가 가겠지만, 적절한 중첩을 이용한 배열은 변수의 사용가능성을 수십, 수백배 배가 시켜준다. 배열을 중첩한 다차원 배열의 사용법은 일반적인 배열의 사용법과 같다. 단지, 배열의 값에 일반적인 값 대신 배열의 값이 들어간다는 것이 다를 뿐이다.

<?
  $people = array(
                 array('name' => 'Betty', 'sex' => 'female', 'age' => '24'),
                 array('name' => 'Jane', 'sex' => 'female', 'age' => '29'),
                 array('name' => 'Steven', 'sex' => 'male', 'age' => '28')
                 );
?>


위의 배열에서 steven 의 나이인 28 의 값에 접근을 하고 싶다면 $people[2]['age'] 와 같이 사용할 수 있다. 차수가 높아질수록 첨자가 하나씩 늘어나게 된다.

Posted by seanhigher

댓글을 달아 주세요

프로그래밍 언어에 있어어 변수는 매우 중요한 요소이다. 변수가 없다면 프로그래밍이라는것 자체가 성립되지 않을 것이다. PHP 에서의 변수는 다른 프로그래밍 언어와는 차별된 유연성을 가진다. 이러한 사실 또한 PHP 를 매력적으로 만드는 요소이다.



이름만 봐도 변수인지 알 수 있다.
PHP 의 변수는 개발자가 아닌 어느 누가 봐도 단번에 변수 인지 알 수 있다. PHP 의 모든 변수 앞에는 '$' 표시가 포함되기 때문이다. 이름을 저장하기 위해 'name' 라는 이름을 가진 변수를 사용하고 싶다면 '$name' 라고 쓰면 된다.

<?
  $name = "무른모 공방";
  $address = "http://devist.tistory.com";
?>



아무거나 다 되는 변수!
PHP 에서의 변수 사용은 고민을 할 필요가 없다. 변수의 형태를 선언할 필요가 없기 때문이다. C 언어나 자바같은 경우는 변수를 사용하기 전에 사용하고자 할 데이터가 어떤 형태를 지니는지 곰곰히 생각해 봐야 했다. 하지만, PHP 에서는 그런 고민이나 걱정은 하지 않아도 된다. PHP 파서가 다 알아서 해주기 때문이다.

<?
  $number = 1028;
  $character = "ABC";
?>



형변환 함수? 그런거 몰라도 된다.
C나 자바같은 프로그래밍 언어에서는 문자의 형태로 받아진 숫자를 숫자의 형태로 바꾸기 위해서 다양한 함수들을 사용해야 했다. 이런 부분을 해결하기 위해 작성해야 할 코드도 적지 않은 부분을 차지하였고... 하지만, PHP 에서는 형 변환 함수에 대해서 공부해야 할 필요가 없다. 변수 자체에 형태를 선언해주지 않기 때문에 문맥의 상황에 맞추어서 자동으로 형변환이 이루어지게 된다.

<?
  $a = 100;
  $b = "이백";
  $b = 200;
  $sum = $a + $b;
?>


$a 는 100이라는 숫자를 받으므로 숫자형태의 데이터를 저장하는 변수가 된다. $b 는 "이백"이라는 문자를 받는 문자형 변수가 된다. 다음 줄에서 $b 는 200 이라는 숫자를 입력받게 된다. 200 이라는 숫자를 받았다고 해서 숫자형이라고 단정지을 수는 없기 때문에 여전히 문자형을 갖게 되지만, 다음줄에서 $b는 계산을 하기 위한 변수로 사용이 되기 때문에 그 순간부터 문자형에서 숫자형 변수로 형태가 바뀌게 되는 것이다.


PHP 언어의 변수형
PHP 에서는 변수의 형태를 파서가 자동으로 선언해주고, 변환해 주지만 어떠한 타입의 변수를 선언해 주는지에 대해서 알아볼 필요는 있다. 내가 입안에서 씹고 있는 음식이 무엇으로 만들어졌는지 모르는것과 아는 것에는 큰 차이가 있다.
boolean : true 와 false 값을 갖는 데이터 형이다.
interger : 정수의 값을 갖는 데이터 형이다. 시스템마다 저장할 수 있는 범위에 차이는 있지만, C 언어의 long 타입과 같다고 할 수 있다.
float : 부동소수값, 또는 실수의 값을 갖는 데이터 형이다.
string : 문자형태의 값을 갖는 데이터 형이다. C 나 JAVA 의 경우는 문자 하나와 문자열을 구분지어 사용하는데, PHP 에서는 문자와 문자열을 다르게 보지않고 동일한 형테의 데이터 형으로 본다.
array : 연관된 자료들의 집합을 나타낸다. C 나 JAVa 와는 다르게 한 배열에 속해있는 자료들의 형태가 같지 않아도 사용이 가능하다.
object : 오브젝트 타입의 클래스 객체를 참조하기 위한 변수 타입이다.
resource : mysql 이나 oci 와 같은 함수를 통해 연결된 데이터이터베이스 등 특별한 함수의 반환값이나, 외부 자원을 가리키는데 사용 가능한 데이터 타입이다.
null : 아무런 값도 갖지 않는 데이터 타입이다.




'Dev Center > PHP start' 카테고리의 다른 글

Arrary 타입 변수 사용하기.  (0) 2010.05.03
String 타입의 변수 사용하기.  (0) 2010.05.02
PHP 의 변수.  (0) 2010.05.01
timezone 설정하기.  (0) 2010.04.30
PHP 에 무슨 문제라도??  (0) 2010.04.29
HTML 과 PHP 함께 사용하기.  (3) 2010.04.27
Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함