2022. 5. 6. 16:56ㆍ카테고리 없음
제어문 실습(반복문, 연산자)
실습. 1~100까지의 숫자 중 5의 배수의 합산값을 구하여 출력하여라. (2가지 방법이 있다.)
<script type="text/javascript">
var sum = 0;
for(i=1; i < 101; i++ ){
if(i % 5==0){
sum+=i
}
//console.log(i); 요렇게 먼저 시작하자.
}
console.log(sum);
</script>
<script type="text/javascript">
var sum = 0;
for(i=5; i < 101; i +=5 ){
if(i % 5==0){
sum+=i
}
//console.log(i); 요렇게 먼저 시작하자.
}
console.log(sum);
</script>
1. break, continue
- 주로 반복문 안에서 사용된다.
- break : break 만났을 경우 반복 중단.
- continue : continue을 만났을 경우 continue 아래 코드를 실행 하지 않고 다음 반복을 실행한다.
<script type="text/javascript">
for(var i=0; i<10; i++){
//console.log(i); 6까지 출력.
if(i>5) {
break; //반복 중단, 중단 후 아래 코드는 실행 안됨
}
console.log(i); // 5까지 출력.
}
</script>
<script type="text/javascript">
for(var i=0; i<10; i++){
if(i % 2 == 0){
continue;
}
console.log(i);
}
</script>
<script type="text/javascript">
var n = 0;
while(n<10){
n++ ;
if(n%2==0){
continue;
}
console.log(n,'while');
/* console.log(n,'while');
n++ 무한루프하게 된다. 코드 순서가 중요함 */
}
</script>
2. switch
- 하나의 값 기준으로 여러의 값을 비교 할때 쓰이는 제어문
<script type="text/javascript">
var n=10;
var n1= 0;
switch (n){ //기본형의 값
case 1: //비교 대상 값, 기본형의 값과 비교대상 값이 일치할 때
//case의 값과 동일시 이 구간의 코드 실행
console.log('switch 1');
break;
case 2: //비교 대상 값
//case의 값과 동일시 이 구간의 코드 실행
console.log('switch 2');
break;
case 3: //비교 대상 값
//case의 값과 동일시 이 구간의 코드 실행
console.log('switch 3');
break;
case 10: //비교 대상 값
//case의 값과 동일시 이 구간의 코드 실행
console.log('switch 10');
break;
default: // else와 비슷하다. case에 해당되는 값이 없을 경우 실행되는 구간
console.log('일치하는 값 없음', n);
break;
}
</script>
3. 중첩 반복문
- 반복문 내부에 반복문
- 3중첩 이상은 하지 않는다.(유지보수 차원)
<script type="text/javascript">
for(var i=0; i<10; i++){
console.log(i,'i 시작');
for(var j=0; j<10; j++){//위의 반복문 초기값(식별자)과 중복없이 선언
console.log(j,'j')
if(j>5){
break;//해당 영역의 반복만 중단
}
}
console.log(i,'i 종료');
}
</script>
this <- 객체와된 나 자신(전역변수를 구분할 때 ) 나 자신에 있는 필드 선택
4. 배열
- 하나의 저장소에 공간을 나누어 저장 할 수 있는 방법(객체)
- 배열에는 index -> 배열 객체에 데이터가 저장되는 주소
- index -> 0부터 시작 -> 데이타 저장될 때마다 1씩 증가
- 배열 객체에 index를 활용하여 데이타를 저장하거나 가지고 올 수 있다.
- 배열에는 기본 자료형, 객체, 함수를 담을 수 있다.
① 배열 객체 선언
- var 식별자(변수명) = new Array();
( [] -> 형태의 공간(객체) 생성 - 식별자에 공간(객체)의 주소를 대입)
- var 식별자(변수명) = [];
<script type="text/javascript">
//빈 배열 객체 선언
var nArr1=new Array();
var nArr2=[];
console.log(nArr1, nArr2,'배열 객체 출력');
//값을 가지고 있는 배열 객체 선언
var nArr3=new Array('홍길동','이순신');
var nArr4=['홍길순','유관순'];
console.log(nArr3, nArr4,'배열 객체 출력');
</script>
② 배열의 요소(원소) 접근하기
- 배열이 가지고 있는 데이터(자료형)
- 배열의 요소는 index로 접근 한다.
- 배열의 요소에 값을 변경하거나 제거할 때, index로 요소에 접근해야 한다.
- 배열의 요소 생성은 index로 접근하여 생성(저장)한다.
- 요소 접근 방식 -> 식별자[index] ;
- 요소에 값 저장 -> 식별자[index] = 값;
- 객체는 메서드(기능)과 속성으로 구성되어 있다.
- 객체의 속성이나 메서드에 접근하기 위해서는 토트 연산자(멤버 호출 연산자)를 활용한다. (식별자.속성 혹은 메서드)
<script type="text/javascript">
var nArr5=[10,20,30,40,50];
console.log(nArr5[2], '3번째 요소 값 가지고 오기 nArr5[2]');
nArr5[2] = 100; //3번째 요소에 값 변경
console.log(nArr5[2], '3번째 요소 값 가지고 오기 nArr5[2]');
</script>
③ 배열에 값 저장하기
<script type="text/javascript">
//index로 접근하여 값 저장하기
var nArray1=[];
nArray1[0] = 20;
nArray1[1] = 30;
//index를 모르고 있을 때
//식별자.push(값);
//index번호 모르더라도, 자동으로 데이터가 증가되어 저장된다.
nArray1.push(50);
console.log(nArray1);
</script>
④ 배열의 크기(배열에 담긴 갯수)
- 배열의 크기를 알아 보기 위해서는 length라는 속성을 사용한다.
<script type="text/javascript">
var nArray2 = [1,2,3,4,5];
console.log(nArray2, nArray2.length);
// console.log(nArray2.0); 요런 출력은 불가능, 자바스크립트에서 속성에 접근하기 위해서 .을 붙여준다.
</script>
⑤ 객체 참조 변수
<script type="text/javascript">
//기본형
var n1=10;
var n2=n1; // 변수에 대입시 값 복제
console.log(n1,n2);
n2=20; // 새로운 만들어진 공간에 저장
console.log(n1,n2);
//참조형
var arr1 = new Array(10,20);
console.log(arr1);
var arr2 = arr1; //변수에 대입시 객체 주소값 복제
console.log(arr1,arr2);
arr2[0] = 100; //0번째 자리에 100 대입
console.log(arr1,arr2);
</script>
⑥ 배열과 반복문
<script type="text/javascript">
var nArray01 =[10,20,30,40,50];
for(var i=0; i<nArray01.length; i++){
console.log(nArray01[i]);
}
</script>
5. 실습을 해보자.
① 제어문 실습(반복문, 연산자) jsEx01
실습. 1~100까지의 숫자 중 5의 배수의 합산값을 구하여 출력하여라.
<script type="text/javascript">
var sum = 0;
for(i=1; i < 101; i++ ){
if(i % 5==0){
sum+=i
}
//console.log(i); 요렇게 먼저 시작하자.
}
console.log(sum);
</script>
<script type="text/javascript">
var sum = 0;
for(i=5; i < 101; i +=5 ){
if(i % 5==0){
sum+=i
}
//console.log(i); 요렇게 먼저 시작하자.
}
console.log(sum);
</script>
② 중첩 반복문 실습 jsEx02
- 구구단 2단부터 9단까지 출력하여라.
<script type="text/javascript">
var x = 2;
var y = 1;
for(x=2; x<10; x++){
for(y=1; y<10; y++){
console.log(x + ' X ' + y + " = " + x*y);
}
}
</script>
- 구구단 9단부터 2단까지 역순으로 출력하여라.
<script type="text/javascript">
var i = 9;
var z = 1;
for(i=9; i>1; i--){
for(z=9; z>0; z--){
console.log(i + ' X ' + z + " = " + i*z);
}
}
</script>
- 구구단 2단부터 9단까지의 값중 짝수의 값만 합산하여 합산값만 출력하여라.
<script type="text/javascript">
var sum = 0;
var sum2 = 0;
var x = 2;
var y = 1;
for(x=2; x<10; x++){
for(y=1; y<10; y++){
if(x%2==0){ // x단 짝수는 전부 출력, y는 x가 홀수시, 2의 배수만 출력
sum +=(x*y);
} else if(y%2==0){
sum2 +=(x*y);
}
}
}
console.log(sum+sum2);
</script>
<script type="text/javascript"> //선생님 답안
var sum = 0;
for(var i=2; i<10; i++){
for(var j=1; j<10; j++){
var n=j*i;
if(n%2==0){
sum+=n;
}
}
}
console.log(sum);
</script>
- 구구단 2단부터 9단까지의 값중 홀수단만 출력하여라.
<script type="text/javascript">
var x = 2;
var y = 1;
for(x=2; x<10; x++){
for(y=1; y<10; y++){
if(x % 2 == 1){
console.log(x + ' X ' + y + " = " + x*y);
}
}
}
</script>
<script type="text/javascript">//선생님 답안
for(var i=2; i<10; i++){
if(i%2 !=0){
for(var j=1; j<10; j++){
console.log(i + ' X ' + j + " = " + i*j);
}
}
}
</script>
- 중첩 반목문을 활용하여 아래의 문자열이 차례대로 콘솔에 출력되도록 하여라.
<script type="text/javascript">
for(var i=0; i<5; i++){
var str=''; //반복시, 문자열을 초기화(=공백상태)하기 때문에 이전 값이 더해지지 않는다.
str +=i;
for(var j=0; j<=i; j++){
str+=j;
}
console.log(str);
}
</script>
<script type="text/javascript"> //현우씨 답
for(var i=0; i<5; i++){
var str=''; //반복시, 문자열을 초기화 하기 때문에 이전 값이 더해지지 않는다.
for(var j=0; j<=i; j++){
str+=j;
}
console.log(i+str);
}
</script>
③ 배열과 반복문 실습 jsEx03
- 구구단 2단의 결과값을 guguArray배열에 담도록 하여라.
[2,4,6,8,10,12,14,16,18]
<script type="text/javascript">
var guguArray = []; //[2,4,6,8,10,12,14,16,18];
for(var i=1; i<10; i++){
guguArray.push(2*i);
}
console.log(guguArray);
</script>
<script type="text/javascript"> // 선생님 답
var guguArray = []; //[2,4,6,8,10,12,14,16,18];
for(var i=1; i<10; i++){
guguArray[i-1]=i*2; // index 0부터 시작한다는 뜻.
}
console.log(guguArray);
</script>
- 아래의 배열에 학생의 점수가 담겨 있다 학생의 점수 평균을 구하여 출력하여라.
<script type="text/javascript">
var scoreArray=[45,60,88,90,100];
var sum = 0;
for(var i=0; i<scoreArray.length; i++){
sum += scoreArray[i];
}
console.log(sum/scoreArray.length);
</script>
- 아래의 배열에 학생의 점수가 담겨 있다. n값 이상인 학생의 수를 구하여라.
<script type="text/javascript">
var n = 60;
var scoreArray2=[66,43,45,75,40];
var count= 0
for(var i=0; i<scoreArray2.length; i++){
if(scoreArray2[i]>=n){
count+=1;
}
}
console.log(count);
</script>
<script type="text/javascript"> // 선생님 풀이법
var n = 60;
var scoreArray2=[66,43,45,75,40];
var count= 0
for(var i=0; i<scoreArray2.length; i++){
if(scoreArray2[i]>=n){
count++;
}
}
console.log(count);
</script>