반복문


1. for문. 정해진 횟수만큼 반복해야 하는 경우 사용하는 구문.


-기본형식

for (대입문 ; 조건식 ; 증감식) {

//실행문

}



2. do~while문


-기본형식

do {

//실행문

} while(조건식)



//Sample09.html

//1부터 10까지 출력하는 반복문 테스트.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">

function myFunc() {

var str = "";

for(var a=0; a<=10; a++) {

str += a + " ";

}

var result = document.getElementById("result")

result.innerHTML = str;

}

</script>


</head>

<body>

<div>

<h2>반복문 테스트</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">  /* 이벤트 핸들러 */

</form>

<h3>출력 ----------------</h3>

<div id="result"></div>

</div>

</body>

</html>





1~100사이의 짝수만 출력


//Script10.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var str = "";

for(var a=2; a<=100; a+=2) {

str += a + "<br>";

}

var result = document.getElementById("result")

result.innerHTML = str;

}

</script>

</head>

<body>

<div>

<h2>1~100사이의 수에서 짝수만 출력</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">  /* 이벤트 핸들러 */

</form>

<h3>출력 ----------------</h3>

<div id="result"></div>

</div>

</body>

</html>






반복문이용해서 1~100짝수 출력하고 마지막에 짝수들의 합 출력. 자바스크립트 이용.


2

4

6

...

100

----------------

합계: xxxx



//Script11.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var str = "";

var sum = 0;

for(var a=2; a<=100; a+=2) {

str += a + "<br>";

sum += a;

}

str += "------------<br>합계: " + sum 

var result = document.getElementById("result")

result.innerHTML = str;

}

</script>

</head>

<body>

<div>

<h2>1~100사이의 수에서 짝수만 출력</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">  /* 이벤트 핸들러 */

</form>

<h3>출력 ----------------</h3>

<div id="result"></div>

</div>

</body>

</html>





문제) 1부터 100까지의 수중에서 4의 배수만 출력. 한줄에 4개씩 출력. while, 자바스크립트 이용.

실행 예)


 4  8 12 16

20 24 28 32

...



//Script12.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type = "text/javascript">

function myFunc() {

var str = "";

var a = 0;

do {

a++;

if ((a%4) == 0) {

str += a + " "; 

}

if ((a%16) == 0) {

str += "<br>";

}

}while(a<=100);

var result = document.getElementById("result")

result.innerHTML = str;

}

</script>

</head>

<body>

<div>

<h2>1~100사이의 수에서 4의 배수만 출력. 한줄에 4개씩 출력.</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">  /* 이벤트 핸들러 */

</form>

<h3>출력 ----------------</h3>

<div id="result"></div>

</div>

</body>

</html>






문제) 1부터 100까지의 수중에서 4의 배수만 출력

한줄에 4개씩 출력. 줄 끝에 해당 줄 숫자들의 합을 출력

while문 이용. 자바Script 이용.

실행 예)


 4  8 12 16 -> 40

20 24 28 31 -> 104

...


//Script13.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type = "text/javascript">

function myFunc() {

var str = "";

var a = 0;

var sum = 0;

do {

a++;

if ((a%4) == 0) {

str += a + " ";

sum += a;

}

if ((a%16) == 0) {

str += " -> "+ sum +"<br>";

sum = 0;

}

}while(a<=100);

var result = document.getElementById("result")

result.innerHTML = str;

}

</script>

</head>

<body>

<div>

<h2>1~100사이의 수에서 4의 배수만 출력. 한줄에 4개씩 출력.</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">  /* 이벤트 핸들러 */

</form>

<h3>출력 ----------------</h3>

<div id="result"></div>

</div>

</body>

</html>





자바스크립트 대화상자


1. alert(), confirm(), prompt() 함수를 이용.


2. alert()은 확인 버튼만 지원. 메시지 출력 전용.


3. confirm()은 확인, 취소 버튼 지원. 선택적 진행 가능.


4. prompt()는 외부 입력이 가능한 대화상자. 확인, 취소 버튼 지원.




//Script14.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">

function myFunc() {

//alert("아이디 또는 패스워드가 틀렸습니다.");

/* var result = confirm("현재 선택된 자료를 삭제할래?");

if(result) {

//삭제 정상 진행

} */

var str = prompt("숫자 입력(양의 정수)?");

if (str != null) {

//result 변수 안에는 유효한 문자열이 들어있다.

var result = document.getElementById("result");

result.innerHTML = str;

}

}

</script>

</head>

<body>

<div>

<h2>자바스크립트 대화상자</h2>

<form>

<input type="button" value="alert() 호출" onclick="myFunc()">

<input type="button" value="confirm() 호출" onclick="myFunc()">

<input type="button" value="prompt() 호출" onclick="myFunc()">

</form>

<div id = "result"></div>

</div>

</body>

</html>






입력받은 숫자(양의 정수)를 화면에 출력하되, -1이 입력될때까지 계속 반복.

실행 예)

숫자 입력(양의 정수)?1   -> prompt 이용.

숫자 입력(양의 정수)?2

숫자 입력(양의 정수)?3

숫자 입력(양의 정수)?-1

1

1 2

1 2 3

...


//Script15.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var msg = "";

var temp = "";

do {

var str = prompt("숫자 입력(양의 정수)?");

if(str == null || str == -1) {

break;

}

temp += str + " ";

msg += temp + "<br>"; 

}while (true);

var result = document.getElementById("result");

result.innerHTML = msg;

}


</script>

</head>

<body>

<div>

<h2>반복 입력. prompt 사용.</h2>

<form>

<input type="button" value="입력" onclick="myFunc()">

</form>

<h3>출력 -----------</h3>>

<div id="result"></div>

</div>

</body>

</html>





입력받은 숫자(양의 정수)를 화면에 출력하되, -1이 입력될때까지 계속 반복.

실행 예)

숫자 입력(양의 정수)?1   -> prompt 이용.

숫자 입력(양의 정수)?2

숫자 입력(양의 정수)?3

숫자 입력(양의 정수)?-1

1 -> 1

1 2 -> 3

1 2 3 -> 6

...


//Script16.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var msg = "";

var temp = "";

var sum = 0;

do {

var str = prompt("숫자 입력(양의 정수)?");

if(str == null || str == -1) {

break;

}

temp += str + " ";

sum += parseInt(str);

msg += temp + " -> " + sum + "<br>"; 

}while (true);

var result = document.getElementById("result");

result.innerHTML = msg;

}


</script>

</head>

<body>

<div>

<h2>반복 입력. prompt 사용.</h2>

<form>

<input type="button" value="입력" onclick="myFunc()">

</form>

<h3>출력 -----------</h3>>

<div id="result"></div>

</div>

</body>

</html>






입력받은 숫자(양의 정수)를 화면에 출력하되, -1이 입력될때까지 계속 반복.

실행 예)

숫자 입력(양의 정수)?1   -> prompt 이용.

숫자 입력(양의 정수)?2

숫자 입력(양의 정수)?3

숫자 입력(양의 정수)?-1

1

1 2

1 2 3

...

------------------------------------------

현재까지 입력된 숫자들중에서 최대값: xxxx


//Script17.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var msg = "";

var temp = "";

var max = 0;

do {

var str = prompt("숫자 입력(양의 정수)?");

if(str == null || str == -1) {

break;

}

if (max < parseInt(str)){

max = parseInt(str);

}

temp += str + " ";

msg += temp + "<br>";

}while (true);

msg += "----------------------------------<br>현재까지 입력된 숫자들중에서 최대값: " + max;

var result = document.getElementById("result");

result.innerHTML = msg;

}


</script>

</head>

<body>

<div>

<h2>반복 입력. prompt 사용.</h2>

<form>

<input type="button" value="입력" onclick="myFunc()">

</form>

<h3>출력 -----------</h3>

<div id="result"></div>

</div>

</body>

</html>





이중 반복문


1. for문이나 while문 등을 겹쳐서 코딩.



for (대입문 1; 조건식 2, 12, 19; 증감식 11, 18) {


//(이 부분은 바깥쪽 for문의 영향 범위)

for (대입문 3, 13; 조건식 4, 7, 10, 14, 17; 증감식 6, 9, 16) {

//이 부분은 안쪽 for문의 영향 범위 5, 8, 15

}

//(이 부분은 바깥쪽 for문의 영향 범위)


}



//1~5 까지 5회 반복.

//Script18.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var str = "";

for (var a=1 ; a<=5 ; a++) {

for (var b=1; b<=5 ; b++) {

str += b + " ";

}

str += "<br>";

var result = document.getElementById("result");

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>이중 반복문 테스트</h2>

<form><input type="button" value="결과" onclick="myFunc()"></form>

<h3>출력--------------</h3>

<div id="result"></div>

</div>

</body>

</html>






아래 출력 결과를 얻을 수 있는 이중 반복문 작성.

실행 예)

1 2 3 4 5 6 7 8 9 10 

2 3 4 5 6 7 8 9 10

3 4 5 6 7 8 9 10

4 5 6 7 8 9 10

5 6 7 8 9 10

6 7 8 9 10

7 8 9 10

8 9 10

9 10

10


//Script19.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var str = "";

for (var a=1 ; a<=10 ; a++) {

for (var b=a; b<=10 ; b++) {

str += b + " ";

}

str += "<br>";

var result = document.getElementById("result");

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>이중 반복문 테스트2</h2>

<form><input type="button" value="결과" onclick="myFunc()"></form>

<h3>출력--------------</h3>

<div id="result"></div>

</div>

</body>

</html>






문제) 아래와 같은 결과가 나오도록 이중 for문 구성.


실행 예)

1 2 3 4 5 6 7 8 9 10 

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7

1 2 3 4 5 6

1 2 3 4 5

1 2 3 4

1 2 3

1 2

1



//Script20.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var str = "";

for (var a=10 ; a>=1 ; a--) {

for (var b=1; b<=a ; b++) {

str += b + " ";

}

str += "<br>";

var result = document.getElementById("result");

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>이중 반복문 테스트3</h2>

<form><input type="button" value="결과" onclick="myFunc()"></form>

<h3>출력--------------</h3>

<div id="result"></div>

</div>

</body>

</html>






문제) 구구단 출력. 반복문 이용. 입력된 데이터 검사 과정 추가. 자바 스크립트 이용.

실행 예)

원하는 단수(1~9)? [5  ] [결과]

5 * 1 = 5

5 * 2 = 5

...


5 * 9 = 45



//Script21.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<style type="text/css">

.style01 {

width:40px;

}

</style>


<script type="text/javascript">


function myFunc() {

var temp = document.getElementById("num");

var number = parseInt(temp.value);

var msg = document.getElementById("msg");

msg.style.display = "none";

if (temp.value.match(/[^1-9]/) || number > 9 ) {

msg.style.display = "inline";

temp.value = "";

temp.focus();

} else {

var str = "";

for (var a=1; a<=9 ; a++) {

str += number + " * " + a + " = " + (number*a) + "<br>";

}

var result = document.getElementById("result");

result.innerHTML = str;

}

}


</script>

</head>

<body>

<div>

<h2>구구단 출력</h2>

<h3>입력--------------</h3>

<form>

원하는 단수(1~9)? <input type="text" id="num" class="style01">

<input type="button" value="결과" onclick="myFunc()">

<span id="msg" style="color:red; display:none;"> 1~9 사이의 숫자만 입력 가능합니다.</span>

</form>

<div id="result"></div>

</div>

</body>

</html>






배열(Array)


1. 배열은 크기와 성격이 같은 일련의 원소들이 모여 공동의 집합 구조를 갖는 자료의 집합체.



2. 특징

- 하나의 이름(식별자)을 가지고 여러개의 저장 공간을 가진다.

- 자료형이 같은 자료만 저장할 수 있다.

- 사전에 공간의 크기를 지정해야 한다. -> 예외

- 참조형이다.

- 특정 저장 공간을 지칭하기 위해서 인덱스(0부터 시작되는 번호)를 이용한다.

- 배열의 배열을 이용해서 다차원 배열을 만들 수 있다.

- 자동 초기화 지원



3. 배열 사용 방법


var 변수 = new Array(); //배열 선언. 크기 지정 생략 가능.

변수[인덱스] = 값; //인덱스 사용

var 변수 = [값1, 값2, ...]; //배열선언과 동시에 초기값 지정



//배열에 초기값 지정. 값 중에 가장 큰 값 출력.

//Script22.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var array = [5, 3, 7, 6, 8, 1, 9, 0, 2, 4];

var max = array[0];

var str = "배열 초기값 : ";

for (var a=0; a<array.length; a++) {

str += array[a] + " ";

if (max < array[a]) {

max = array[a];

}

}

str += "<br>";

str += "최대값 : " + max;

var result = document.getElementById("result")

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>배열 테스트</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">

</form>

<h3>출력 --------------</h3>

<div id="result"></div>

</div>

</body>

</html>






문제) 외부에서 여러개의 숫자를 입력 받고, 그 값중에서 가장 큰 값 출력. 배열이용. 자바스크립트 이용.

split() 메소드 이용.


실행 예)

배열의 초기값 [5 3 7 6 8 1 9 0 2 4    ] [결과]


배열 초기값 : 5 3 7 6 8 1 9 0 2 4 

최대값 : 9




//Script23.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var array = new Array();

var numbers = document.getElementById("numbers");

array = numbers.value.split(" ");

var max = parseInt(array[0]);

var str = "배열 초기값 : " + numbers.value;

for (var a=0; a<array.length; a++) {

if (max < parseInt(array[a])){

max = parseInt(array[a]);

}

}

str += "<br>최대값 : " + max;

var result = document.getElementById("result")

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>배열 테스트2</h2>

<form>

배열의 초기값 (공백으로 구분해서 숫자 여러개 입력)<br>

<input type="text" id="numbers">

<input type="button" value="결과" onclick="myFunc()">

</form>

<h3>출력 --------------</h3>

<div id="result"></div>

</div>

</body>

</html>






문제) 이름, 국어, 영어, 수학을 입력받아서 총점, 평균 출력. 배열이용. 자바스크립트 이용. split() 메소드 이용.


실행 예)

성적 입력(이름 국어 영어 수학) [홍길동 100 100 100     ] [결과]


입력받은 데이터 : 홍길동 100 100 100

총점: 300

평균: 100.0



//Script24.html







문제) 여러개의 숫자를 입력 받아서 정렬 출력. 자바스크립트 이용.


실행예)

배열의 초기값(공백으로 구분해서 숫자 여러개 입력)

[5 3 7 6 8 1 9 0 2 4    ] [결과]


배열 초기값 : 5 3 7 6 8 1 9 0 2 4 

정열 결과 : 0 1 2 3 4 5 6 7 8 9







문제) 여러명의 성적(이름, 국어, 영어, 수학)을 입력받아서 총점, 평균, 등수 출력. 배열 이용. split() 메소드 이용. 자바스크립트 이용.


실행 예)

성적 입력(이름 국어 영어 수학)?홍길동 100 100 100 -> promt 이용

성적 입력(이름 국어 영어 수학)?김길동 90 80 90

성적 입력(이름 국어 영어 수학)?-1


이름   국어 영어 수학 총점 평균   등수

홍길동 100  100  100  XXX  XXX.X  1

김길동  90   80   90  XXX  XXX.X  2



//Script25.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var msg = "<table><tr><td>이름</td><td>국어</td><td>영어</td><td>수학</td><td>총점</td><td>평균</td><td>등수</td></tr><br>";

var name = new Array();

var kor = new Array();

var eng =  new Array();

var mat =  new Array();

var tot =  new Array();

var avg =  new Array();

var ranks = new Array();


var a = 0;

do {

var array = new Array();

var str = prompt("성적 입력(이름 국어 영어 수학)?");

if (str == null || str == -1) {

break;

}

array = str.split(" ");

name[a] = array[0];

kor[a] = parseInt(array[1]);

eng[a] = parseInt(array[2]);

mat[a] = parseInt(array[3]);

tot[a] = parseInt(array[1]) + parseInt(array[2]) + parseInt(array[3]);

avg[a] = Math.round((tot[a] / 3)*10)/10;

a++;

} while(true);

for (var a=0; a<name.length ; a++) {

ranks[a] = 1;

}

for (var n=0; n<ranks.length; n++) {

for (var m=0; m<ranks.length; m++) {

if (n == m) {

continue;

}

if (tot[n] < tot[m]) {

ranks[n]++;

}

}

}

for (var a=0 ; a<name.length ; a++) {

msg += "<tr><td>" + name[a] + "</td><td>" + kor[a] + "</td><td>"  + eng[a] + "</td><td>"  + mat[a] + "</td><td>" + tot[a] + "</td><td>" + avg[a] + "</td><td>" + ranks[a] + "</td></tr>";

}

msg += "</table>";

var result = document.getElementById("result")

result.innerHTML = msg;

}


</script>

</head>

<body>

<div>

<h2>배열 테스트3</h2>

<form>

<input type="button" value="입력" onclick="myFunc()">

</form>

<h3>출력 --------------</h3>

<div id="result"></div>

</div>

</body>

</html>







배열의 배열(다차원 배열)


1. 1차원 배열 여러개를 조합시켜서 사용하는 배열.


2. 선언


var 변수 = new Array();

변수[0] = new Array();

변수[1] = new Array();

....



변수[인덱스1[인덱스2] = 값;


var 변수 = [[값1, 값2, ...], [값1, 값2,....], ....];


//Script27.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var arr = new Array();

arr[0] = new Array();

arr[1] = new Array();

var str = "";

arr[0][0] = 1;

arr[0][1] = 2;

arr[0][2] = 3;

arr[1][0] = 4;

arr[1][1] = 5;

arr[1][2] = 6;

for (var a=0; a<2; a++) {

for (var b=0; b<3; b++) {

str += arr[a][b] + " ";

}

str += "<br>";

}

var result = document.getElementById("result");

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>배열의 배열 테스트</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">

</form>

<h3>출력 --------------</h3>

<div id="result"></div>

</div>

</body>

</html>







//1~25까지의 수를 저장하는 배열의 배열 선언

실행 예)

 1  2  3  4  5 

 6  7  8  9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25




//Script28.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">


function myFunc() {

var arr = new Array();

arr[0] = new Array();

arr[1] = new Array();

arr[2] = new Array();

arr[3] = new Array();

arr[4] = new Array();

var str = "";

for (var a=0, c=1; a<5; a++) {

for (var b=0; b<5; b++) {

arr[a][b] = c++;

}

}

for (var a=0; a<arr.length; a++) {

for (var b=0; b<arr[a].length; b++) {

str += arr[a][b] + " ";

}

str += "<br>";

var result = document.getElementById("result");

result.innerHTML = str;

}


</script>

</head>

<body>

<div>

<h2>배열의 배열 테스트</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">

</form>

<h3>출력 --------------</h3>

<div id="result"></div>

</div>

</body>

</html>





문제) 아래와 같은 형태의 숫자 출력이 되도록 배열의 배열 지정. 자바스크립트 이용.


실행 예)


 1  2  3  4  5 

 2  3  4  5  6 

 3  4  5  6  7 

 4  5  6  7  8 

 5  6  7  8  9 


//Script29.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<script type="text/javascript">

function myFunc() {

var arr = new Array();

arr[0] = new Array();

arr[1] = new Array();

arr[2] = new Array();

arr[3] = new Array();

arr[4] = new Array();

var str = "";

for (var a=0; a<5; a++) {

for (var b=0, c=(a+1); b<5; b++, c++) {

arr[a][b] = c;

}

}

for (var a=0; a<5; a++) {

for (var b=0; b<5; b++) {

str += arr[a][b] + " ";

}

str += "<br>";

}

var result = document.getElementById("result");

result.innerHTML = str;

</script>

</head>

<body>

<div>

<h2>배열의 배열 테스트2</h2>

<form>

<input type="button" value="결과" onclick="myFunc()">

</form>

<h3>출력------------------</h3>

<div id ="result"></div>

</div>

</body>

</html>


WRITTEN BY
빨강꼬마

,

테이블 태그


1. <table>,<tbody>,<tr>,<td> 태그의 조합에 의해 표 형식을 만들 수 있다.


2. 형식

<table>

<tbody>

<tr>  --> 행 역할

<td>콘텐츠</td><td>콘텐츠</td>...  --> 열 역활

</tr>

<tr>

<td>콘텐츠</td><td>콘텐츠</td>...

</tr>

...

</tbody>

</table>


3. 제목 표시하는 경우는 <td> 대신에 <th>을 사용.


예를 들어서, 회원 명단을 테이블 태그로 표현하면


번호 이름    전화번호      이메일         

1    홍길동  010-111-1111  hong@naver.com 

2    김길동  010-222-2222  kim@naver.com  


//Sample08.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>

<style type="text/css">

table td, table th  /* 식별자, 식별자는 두 개의 식별자에 동시에 CSS 적용 */ 

{

padding: 5px;

border-right-style: solid; /* 경계선의 모양 지정 속성 */

border-bottom-style: solid; /* 경계선의 모양 지정 속성 */

border-width: 1px; /* 경계선의 굵기 지정 속성 */

border-color: #6980b8; /* 경계선의 색 지정 속성 */

}

</style>

</head>

<body>

<div>

<table cellspacing="4">

<tbody>

<tr>

<th>번호</th>

<th>이름</th>

<th>전화번호</th>

<th>이메일</th>

</tr>

<tr>

<td>1</td>

<td>홍길동</td>

<td>010-111-1111</td>

<td>hong@naver.com</td>

</tr>

<tr>

<td>2</td>

<td>김길동</td>

<td>010-222-2222</td>

<td>kim@naver.com</td>

</tr>

</tbody>

<!--

<tfoot><tr><td style="border:none;">표1. 회원 명단</td></tr> </tfoot>

-->

</table>

</div>

</body>

</html>





입력 폼(Form) 태그


1. <form>, <input>, <select>, <textarea> 태그의 조합으로 입력 인터페이스 구성.


2. <input> 에서 type 속성(text, password, radio, checkbox, file, hidden, submit, reset, button)으로 

여러가지 입력 폼 구성 가능.


3. <select> 태그는 하위 태그로서 <option> 태그를 갖는다.


4. <form> 태그는 <input>,<select>,<textarea>의 부모 태그 역할.


예를 들어, 이름, 전화번호 입력 양식 화면 구성시


<form>

이름 <input type="text">  --> 실행시 텍스트 입력 양식이 된다.

전화번호 <input type="text">

</form>



//Sample09.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<style type="text/css">


input.style01  /* 특정 태그의 스타일(style) 속성이 style01인 경우에만 속성 적용 */ 

{

}

input:FOCUS { /* 특정 태그에 포커스가 맞춰진 경우만 속성 적용 */

background-color: yellow;

}

}

</style>


</head>

<body>

<div>

<h1>회원가입</h1>

<p>회원가입 안내 문구</p>

<form>

<table>

<tbody>

<tr>

<td>이름</td>

<td><input type="text" class="style01"></td>

</tr>

<tr>

<td>전화번호</td>

<td><input type="text" class="style01"></td>

</tr>

<tr>

<td>성별</td>

<td><input type="radio" name="gender">남자<input type="radio" name="gender">여자</td>

</tr>

<tr>

<td>취미</td>

<td>

<input type="checkbox"> 공부 

<input type="checkbox"> 영화

<input type="checkbox"> 운동

<input type="checkbox"> 독서

</td>

</tr>

<tr>

<td>출신지역</td>

<td>

<select>

<option>서울</option>

<option>부산</option>

<option>인천</option>

<option>대구</option>

</select>

</td>

</tr>

<tr>

<td>자기소개</td>

<td>

<textarea style="width:300px; height:100px;"></textarea>

</td>

</tr>

<tr>

<td></td>

<td><input type="button" value="가입"></td>

</tr>

</tbody>

</table>

</form>

</div>

</body>

</html>








Javascript


1. 자바스크립트는 프로그램 언어의 한 종류. HTML의 태그를 객체로 삼아서 데이터 처리를 하는 프로그램 언어.


2. 변수, 연산자, 제어문, 함수, 배열, 객체 등의 표현이 모두 지원됨.


3. HTML, CSS, Javascript 가 혼용된 형태로 코딩을 해야 함.


4. 형식


<script type="text/javascript">

//자바스크립트 코드 작성

/* 범위 주석 */

</script>


5. 기본 규칙

- 대소문자 구분

- 함수 단위로 코딩

- 함수 영역 내에 있는 코드는 함수 호출시에만 실행됨

- 함수 영역 밖에 있는 코드는 HTML 문서가 브라우저에 로드될 때 실행됨

- 함수 호출은 HTML 에서 이벤트 핸들러(onclick, ...)를 이용함

- HTML 태그를 객체로 접근하기 위해서 document.getElementById("아이디명") 메소드 사용

- document는 내장객체로서 HTML 문서의 body 태그 영역을 지정함

- HTML 태그에서는 id 속성을 지정해서 객체 접근이 가능하도록 함

- 객체로 접근한 후에는 해당 객체가 가지고 있는 여러가지 속성을 자바스크립트에서 사용 가능

- 사용 가능한 속성은 해당 객체의 종류에 따라 다름

- 자바스크립트 내에서만 사용 가능한 여러가지 내장 객체가 지원됨






이벤트 핸들러 테스트


//Script01.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">

//변수 선언->전역 변수(멤버 변수)

var a = 10;

//함수(메소드) 정의

function myFunc() {

//변수 선언->지역 변수

var b = 20;

var c = 0;

//연산

c = a + b;


//출력->자체 출력문을 사용하지 않고 HTML 객체를 통해서 결과 출력함.

var obj = document.getElementById("result");

obj.innerHTML = "<span style=\"font-size:24pt;\">결과: " + c +"</span>";

}


</script>


</head>

<body>

<div>

<h3>자바스크립트를 이용한 메시지 출력</h3>

<form>

<input type="button" value="함수호출"

onclick="myFunc()">

</form>

<div id="result">결과: </div>

</div>

</body>

</html>






이름, 국어, 영어, 수학을 입력 받아서 총점, 평균 출력


//Script02.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<style type="text/css">

.score { width:80px; }

</style>


<script type="text/javascript">


function myFunc() {

var nameObj = document.getElementById("name"); 

var korObj = document.getElementById("kor");

var engObj = document.getElementById("eng");

var matObj = document.getElementById("mat");

var tot = parseInt(korObj.value) + parseInt(engObj.value) + parseInt(matObj.value);

var ave = Math.round((tot / 3)*10)/10;

var result = document.getElementById("result");

result.innerHTML = "<span style=\"font-size:14pt;\">이름:"+nameObj.value+", 국어:"+korObj.value+", 영어:"+engObj.value+", 수학:"+matObj.value+", 총점:"+tot+", 평균:"+ave+"</span>";

}

</script>


</head>

<body>

<div>

<h2>총점, 평균 계산</h2>

<h3>입력------</h3>

<form>

이름 <input type="text" id="name" value="">

국어 <input type="text" id="kor" class="score">

영어 <input type="text" id="eng" class="score">

수학 <input type="text" id="mat" class="score">

<input type="button" value="결과"

onclick="myFunc()">

</form>


<h3>출력------</h3>

<div id="result">

<!-- 

<span style="font-size:14pt;">이름:홍길동, 국어:100, 영어:100, 수학:100, 총점:300, 평균:100.0</span>

-->

</div>

</div>

</body>

</html>






문제) 거스름돈을 환폐단위로 구분해서 출력. 자바스크립트 이용.

실행 예)

금액(10~1000) [ 990  ]  [결과]

총액 : 990원

오백원 1개, 백원 4개, 오십원 1개, 십원 4개


//Script03.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">

function myFunc() {

var moneyObj = document.getElementById("money");


var money = parseInt(moneyObj.value);

var m500, m100, m50, m10;

m500 = parseInt(money / 500); //몫 연산

money = money % 500; //나머지 연산

m100 = parseInt(money / 100);

money = money % 100;

m50 = parseInt(money / 50);

money = money % 50;

m10 = parseInt(money / 10);

var result = document.getElementById("result");

result.innerHTML = "총액 : "+moneyObj.value+"원<br>오백원 "+m500+"개, 백원 "+m100+"개, 오십원 "+m50+"개, 십원 "+m10+"개";

}

</script>


</head>

<body>

<div>

<h2>거스름돈 계산</h2>

<h3>입력 ---------- </h3>

<form>

금액(10~1000)

<input type="text" id="money"> 

<input type="button" value="결과" 

onclick="myFunc()">

</form>

<h3>출력 ---------- </h3>

<div id="result">

<!-- 총액 : 990원<br>

오백원 1개, 백원 4개, 오십원 1개, 십원 4개 -->

</div>

</div>

</body>

</html>






if문


1. 제어문 일종. 조건식 검사를 통해서 조건에 결과에 따라서 실행문 실행을 선택.


2. 형식

if (조건) {

}


if (조건) {

} else {

}


if (조건) {

} else if (조건) {

} else {

}


3. 조건식에 사용되는 관계연산자, 논리연산자는 자바와 동일.


4. 자바스크립트에서는 문자열 비교시 == 연산자 사용함(자바에서는 equals() 메소드 사용).






문제) 세 개의 숫자 중에서 가장 큰 숫자 구하기. 자바스크립트 이용.

실행 예)

숫자1 [XX] 숫자2 [YY] 숫자3 [ZZ]  [결과]


입력 받은 숫자 : XX, YY, ZZ

가장 큰 숫자 :  ZZ


//Script04.html






문제) 비밀번호 입력시 확인 결과 출력. 자바스크립트 이용.

<input type="password"> 태그 이용.

실행 예)


비밀번호(숫자만 입력 가능) [**** ]  [결과]


결과: 암호가 틀렸습니다.


//Script05.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">


function myFunc() {

var pw = document.getElementById("pw");

var msg = document.getElementById("msg");

msg.style.display = "none";

//정규식(Regular Expression)

//숫자로만 구성되었는지 검사하는 과정

if (pw.value.match(/[^0-9]/)) {

msg.style.display = "inline";

pw.value = "";

pw.focus();

}

var str = "";

if (pw.value == "1234") {

str = "암호가 맞습니다.";

} else {

str = "암호가 틀렸습니다.";

}

var result = document.getElementById("result");

result.innerHTML = str;

}

</script>


</head>

<body>

<div>

<h2>비밀번호 확인</h2>

<h3>입력 ------------------</h3>

<form>

비밀번호(숫자만 입력 가능)

<input type="password" id="pw">

<input type="button" value="결과"

onclick="myFunc()">

<span id="msg" 

style="color:red; display:none;">

숫자만 입력 가능합니다.</span>

</form>

<h3>출력 ------------------</h3>

<div id="result"></div>

</div>

</body>

</html>






문제) 임의의 수를 입력 받아서 3의 배수, 4의 배수로 구분해서 출력. 자바스크립트 이용.

실행 예)

임의의 정수(3 또는 4의 배수)  [3  ] [결과]


입력받은 숫자 : 3

구분 : 3의 배수


//Sample06.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">


function myFunc() {

var num = document.getElementById("num");

var data = parseInt(num.value);

var msg = document.getElementById("msg");

msg.style.display = "none";

//정규식(Regular Expression)

//숫자로만 구성되었는지 검사하는 과정

if (num.value.match(/[^0-9]/)) {

msg.style.display = "inline";

num.value = "";

num.focus();

}

var str = "";

str += "입력받은 숫자 : " + num.value + "<br>";

if ((data % (3*4)) == 0) {

str += "구분 : 3 또는 4의 배수";

} else if ((data % 3) == 0) {

str += "구분 : 3의 배수";

} else if ((data % 4) == 0) {

str += "구분 : 4의 배수";

}


var result = document.getElementById("result");

result.innerHTML = str;

}

</script>


</head>

<body>

<div>

<h2>배수 확인</h2>

<h3>입력 ------------------</h3>

<form>

임의의 정수(3 또는 4의 배수)

<input type="text" id="num">

<input type="button" value="결과"

onclick="myFunc()">

<span id="msg" 

style="color:red; display:none;">

숫자만 입력 가능합니다.</span>

</form>

<h3>출력 ------------------</h3>

<div id="result"></div>

</div>

</body>

</html>





문제) 임의의 점수를 입력받아서 판정을 출력. 자바스크립트 이용.

입력된 데이터가 숫자인지 검사하는 과정, 0~100 사이의 숫자인지 검사하는 과정 추가.

판정 기준은 

90~100 -> A

80~89 -> B

70~79 -> C

60~69 -> D

0~59 -> F


실행 예)

점수 입력(0~100)  [90  ]  [결과]

입력된 점수 : 90

판정 결과 : A


//Sample07.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<script type="text/javascript">


function myFunc() {

var num = document.getElementById("num");

var data = parseInt(num.value);

var msg = document.getElementById("msg");

msg.style.display = "none";

//정규식(Regular Expression)

//숫자로만 구성되었는지 검사하는 과정

if (num.value.match(/[^0-9]/) || data>100) {

msg.style.display = "inline";

num.value = "";

num.focus();

} else {

var str = "";

str += "입력된 점수 : " + num.value + "<br>";

str += "판정 결과 : ";

if (data < 60) {

str += "F";

} else if (data < 70) {

str += "D";

} else if (data < 80) {

str += "C";

} else if (data < 90) {

str += "B";

} else {

str += "A";

}

var result = document.getElementById("result");

result.innerHTML = str;

}

}

</script>


</head>

<body>

<div>

<h2>판정 확인</h2>

<h3>입력 ------------------</h3>

<form>

점수 입력(0~100)

<input type="text" id="num">

<input type="button" value="결과"

onclick="myFunc()">

<span id="msg" 

style="color:red; display:none;">

0~100 사이의 숫자만 입력 가능합니다.</span>

</form>

<h3>출력 ------------------</h3>

<div id="result"></div>

</div>

</body>

</html>







문제) 국어, 영어, 수학 점수를 입력 받아서 판정 결과 출력. 자바스크립트 이용.

입력된 데이터가 숫자인지 검사하는 과정, 0~100 사이의 숫자인지 검사하는 과정 추가.


판정 기준은

합격 -> 과목별로 40점 이상이면서, 평균이 60점 이상

과락 -> 과목중에 40점 미만이 있고, 평균은 60점 이상

불합격 -> 평균이 60점 미만


평균이 60점 이상 -> 합격

평균이 60점 미만 -> 불합격


합격 또는 과락 구분은 -> 국어, 영어, 수학 점수가 모두 40점 이상인 확인.


실행 예)

국어(0~100) [XX ]  영어(0~100) [YY ]  수학(0~100) [ZZ  ]  [결과]


입력받은 점수 : 국어 XX, 영어 YY, 수학 ZZ

판정 결과 : 합격



//Sample08.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>Insert title here</title>


<style type="text/css">

.style01 {

width:80px;

}

</style>


<script type="text/javascript">


function myFunc() {

var kor = document.getElementById("kor");

var korVal = parseInt(kor.value);

var eng = document.getElementById("eng");

var engVal = parseInt(eng.value);

var mat = document.getElementById("mat");

var matVal = parseInt(mat.value);

var msg = document.getElementById("msg");

msg.style.display = "none";

//정규식(Regular Expression)

//숫자로만 구성되었는지 검사하는 과정

if ((kor.value.match(/[^0-9]/) || korVal>100)

|| ((eng.value.match(/[^0-9]/) || engVal>100))

|| ((mat.value.match(/[^0-9]/) || matVal>100))) {

msg.style.display = "inline";

kor.value = "";

eng.value = "";

mat.value = "";

kor.focus();

} else {

var str = "";

str += "입력된 점수 : 국어 "+kor.value+", 영어 "+eng.value+", 수학 "+mat.value+"<br>";

str += "판정 결과 : ";

var ave = (korVal + engVal + matVal) / 3;

if (ave>=60 && (korVal>=40 && engVal>=40 && matVal>=40)) {

str += "합격";

} else if (ave>=60) {

str += "과락";

} else {

str += "불합격";

}

var result = document.getElementById("result");

result.innerHTML = str;

}

}

</script>




</head>

<body>

<div>

<h2>성적 확인</h2>

<h3>입력 ------------------</h3>

<form>

국어(0~100)<input type="text" id="kor" class="style01">

영어(0~100)<input type="text" id="eng" class="style01">

수학(0~100)<input type="text" id="mat" class="style01">

<input type="button" value="결과"

onclick="myFunc()"><br>

<span id="msg" 

style="color:red; display:none;">

0~100 사이의 숫자만 입력 가능합니다.</span>

</form>

<h3>출력 ------------------</h3>

<div id="result"></div>

</div>

</body>

</html>


WRITTEN BY
빨강꼬마

,