24.08.12 Day26

최지원·2024년 8월 12일

break문, continue문

<!DOCTYPE html>
<html lang="en">

<head>
    <title>break문, continue문</title>
    <script>
        //breadk : 해당 회차(loop)에서 반복문을 탈출(exit)한다.
        // continue문 : 해당 회차(loop)를 중지하고, 루프처럼-증감문으로 이동.
        for(let i = 0; i < 5; i++){
            console.log(i);
            if(i==3){
                console.log("i가 3일 때 탈출");
                break; // 반복문 탈출
            }
        }

        for(let i=0; i<10; i++){
            if(i%2 == 0){ // 2의 배수일때는 증감문으로 이동
                continue;
            }
            console.log(i); // 홀수일 때는 출력됨.
        }

        // 연습문제1
        for(let i=0; i<100;i++){
            if(i>50){
                break;
            }
            console.log(i);
        }

        // 연습문제2
        for (let i = 1; i <= 100; i++) {
            if (!(i % 3 == 0 || i % 5 == 0)) {
                continue;
            }
            console.log(i);
        }

        // 연습문제3
        let count = 0;
        for (let i = 1; i <= 100; i++) {
            if (i % 10 == 3 || i % 5 == 0) {
                continue;
            }
            console.log("밟은 돌 : " + i);
            count++;
        }
        console.log("밟은 총 돌의 갯수 : " + count);
    </script>
</head>
<body>
</body>
</html>

배열

<!DOCTYPE html>
<html lang="en">

<head>
    <title>배열</title>
    <script>
        // 배열 : 같은 타입의 데이터를 순차적으로 나열해 놓은 데이터 구조
        // 램(RAM)
        //  0x1000 *------*   인덱스
        //         |  10  |     0
        //  0x1003 *------*
        //         |  20  |     1
        //  0x1000 *------*
        //         |  30  |     2
        //         *------*

        // 배열 선언 형식
        // let 배열이름 = [데이터1, 데이터2, 데이터3];
        // let 배열이름 = []; 빈 배열
        let arrNums = [10,20,30];

        console.log(arrNums[0]);
        console.log(arrNums[1]);
        console.log(arrNums[2]);

        for(let i = 0; i<3; i++){
            console.log(arrNums[i]);
        }

        // 향상된 for문 - 데이터 요소(item)를 직접 가져온다.
        for(let num of arrNums){
            console.log(num);
        }
        //forEach문
        arrNums.forEach(
            //익명함수
            function(num){
                console.log(num);
            }
        );
        arrNums.forEach(
            //익명함수 - 화살표 함수
            (num) => {
                console.log(num);
            }
        );

        // 연습문제
        let names = ["장미", "수선화", "천일홍"];

        console.log("< for문 사용 출력 >");
        for (i = 0; i < 3; i++) {
            console.log(names[i]);
        }

        console.log("< for of문 사용 출력 >");
        for (let num of names) {
            console.log(num);
        }
    </script>
</head>
<body>
</body>
</html>

이중 반복문

<!DOCTYPE html>
<html lang="en">

<head>
    <title>이중 반복문</title>
    <script>
        // // 이중반복문 : 반복문 안에 반복문이 들어감
        for(let i=0; i<5; i++){
            console.log("i:"+i);
            for(let j=0;j<5;j++){
                console.log("j:"+j);
            }
        }

        // // 구구단 출력하기
        for(let i=2; i<10; i++){
            console.log(i+"단");
            for(let j=1; j<10; j++){
                console.log(i + "*" + j + "=" + i*j);
            }
        }

        // 연습문제
        let num = prompt('구구단 숫자 입력 : ');
        let arrDans = num.split(",")
        console.log(result);

        // 구구단 출력하기
        for (let i = Number(arrDans[0]); i <= Number(arrDans[1]); i++) {
            console.log(i + "단");
            for (let j = 1; j < 10; j++) {
                console.log(i + "*" + j + "=" + i * j);
            }
        }
    </script>
</head>
<body>
</body>
</html>

2차배열

<!DOCTYPE html>
<html lang="en">

<head>
    <title>2차 배열</title>
    <script>
        // 1차 배열
        let nums = [10, 20, 30];
        // 2차 배열
        let nums2D = [
            [10, 20, 30], //1행
            [40, 50, 60], //2행
            [70, 80, 90]  //3행
        ];
        //행인덱스 열인덱스
        console.log(nums2D[0][0]);
        console.log(nums2D[2][1]);

        //nums2D.length : 행의 갯수
        //nums2D[0].length : 열의 갯수
        for (let i = 0; i < nums2D.length; i++) {
            for (let j = 0; j < nums2D[0].length; j++) {
                console.log(nums2D[i][j]);
            }
        }

        // 연습문제
        nums2D.sort((a, b) => b[0] - a[0]);
        for (let nums of nums2D) {
            console.log(nums);
        }

        //1. nums2D의 모든 요소에서 최대값을 출력하시오.
        let max = Number.MIN_SAFE_INTEGER; //최소값
        for (let i = 0; i < nums2D.length; i++) {
            for (let j = 0; j < nums2D[0].length; j++) {
                if (max < nums2D[i][j]) {
                    max = nums2D[i][j];
                }
            }
        }
        console.log(max);

        //2. nums2D의 모든 요소의 합을 구하시오.  sum = sum + n
        let sum = 0;
        for (let i = 0; i < nums2D.length; i++) {
            for (let j = 0; j < nums2D[0].length; j++) {
                sum = sum + nums2D[i][j]; //sum = sum + n
            }
        }
        console.log(sum);
        //3. 학생정보를 담고 있는 2차배열을 선언하고,
        let students = [    //학번, 이름, 영어점수, 나이
            [1, '홍길동', 70, 20],
            [2, '변사또', 60, 30],
            [3, '사임당', 50, 40],
            [4, '김진사', 90, 50],
        ];
        // 영어점수가 가장 높은 학생의 이름을 출력하시오.
        let maxScore = 0;
        for (let student of students) {
            console.log(student);
            console.log(student[2]);
            if (maxScore < student[2]) {
                maxScore = student[2];
            }
        }
        console.log("최대점수:" + maxScore);

        // 기본적인 정렬 알고리즘 : 버블, 선택, 삽입 정렬
        students.sort((a,b)=>b[2]-a[2]);
        console.log(students);
        // 1 김진사 90
        // 2 홍길동 70
        // 3 변사또 60
        // 4 사임당 50
        let index = 1;
        for(let student of students){
            console.log(`${index++} ${student[1]} ${student[2]}`);
        }
    </script>
</head>
<body>
</body>
</html>

반복문의 레이블

<!DOCTYPE html>
<html lang="en">
<head>
    <title>반복문의 레이블 label</title>
    <script>
        // 이중반복문에서 break문, continue문의 제어
        loop1:
        for(let i=0; i<5; i++){
            loop2:
            for(let j=0; j<5; j++){
                if(j>2){
                    break loop1;
                }
                if(i>3){
                    continue loop1;
                }
            }
        }

        //5. 배열 사용, 로또번호 6개(1~45)를 추첨하되 
        //  중복된 수를 추첨하면, 재추첨하는 로직을 넣으시오.
        //  로또번호 6개를 출력하시오.
        let lottoNums = [0,0,0,0,0,0];
        loop1:
        for(let i=0; i<6; i++){
            let radomNum = parseInt(Math.random() * 45 + 1); //1~45중의 임의의 수
            console.log(radomNum);
            loop2:
            for(let j=0; j<i; j++){
                if(lottoNums[j] == radomNum){
                    console.log("재추첨!");
                    i--;
                    continue loop1;
                }
            }
            lottoNums[i] = radomNum; 
        }

    </script>
</head>
<body>
</body>
</html>

반복문 for, while, do while

<!DOCTYPE html>
<html lang="en">

<head>
    <title>반복문 for, while, do while</title>
    <script>
        // for문 형식
        // for(초기화; 조건식; 증감문){
        //    실행문;
        // }
        for (let i = 0; i < 5; i++) {
            console.log(i);
        }
        console.log("____________________________");

        // while문 형식
        // 초기화
        // while(조건식){
        //      실행문;
        // 
        //      증감문; while의 맨끝
        // }
        // 반복변수 i는 for문 밖에서는 해제됨.(지역변수)
        let i = 0;
        while (i < 5) {
            console.log(i);
            i++;
        }

        // 연습문제
        // 1. -10부터 10까지 1씩 증가하는 while문을 만들고 i번수 출력
        console.log("1.__________________________");
        i = -10;
        while (i < 11) {
            console.log(i);
            i++;
        }

        // 2. 0부터 10까지 3씩 증가하는 while문 츨력
        console.log("2.__________________________");

        i = 0
        while (i < 11) {
            console.log(i);
            i += 3;
        }

        // 3. 10부터 -20까지 -5씩 감소하는 while문 출력
        console.log("3.__________________________");
        i = 10
        while (i > -21) {
            console.log(i);
            i -= 5;
        }

        // 4. 1부터 100까지 3의 배수만 출력(while문)
        console.log("4.__________________________");
        i = 1
        while (i < 101) {
            if (i % 3 == 0) {
                console.log(i);
            }
            i++;
        }

        // 5. 1부터 100까지 3이 들어가는 숫자의 갯수를 출력하시오(3,30,33,43,...)
        console.log("5.__________________________");
        i = 1
        let count = 0;
        while (i < 101) {
            if (i % 10 == 3) {
                console.log("#" + i);
                count++;
            }
            if (Math.floor(i / 10) == 3) {
                console.log("_" + i);
                count++;
            }
            i++;
        }
        console.log("3이 들어가는 숫자의 갯수:" + count);
    </script>
</head>
<body>
</body>
</html>

함수

<!DOCTYPE html>
<html lang="en">
<head>
    <title>함수</title>
    <script>
        // 함수 : 코드들을 기능 단위로 묶어놓은 것
        // 용도
        // 1. 코드의 재사용 : 코드 중복 제거
        // 2. 코드뭉치에 이름을 붙일 수 있다.

        // 함수의 4가지 형식
        // 1. 매개변수(입력값) X 반환값 X
        // 2. 매개변수(입력값) O 반환값 X
        // 3. 매개변수(입력값) X 반환값 O
        // 4. 매개변수(입력값) O 반환값 O

        // return문 : 함수를 탈출(종료)
        // return;
        // return 10;

        // breadk문 : 반복문을 탈출

        // 1. 매개변수(입력값) X 반환값 X
        // 선언부
        function func1(){

        }
        // 호츌부
        func1();

        // 2. 매개변수(입력값) O 반환값 X
        function func2(num){
            console.log("func2()호출됨.");
            console.log("num:"+num);
        }
        func2(10);

        // 3. 매개변수(입력값) X 반환값 O
        function func3(){
            console.log("func() 호출됨.");
            return "hong";
        }
        let name = func3();
        console.log(name);

        // 4. 매개변수(입력값) O 반환값 O
        function func4(name){
            console.log("func4 호출됨.");
            console.log(`name:${name}`);
        }
        let welcome = func4('홍길동');
        console.log(welcome);

      //////////////////////////////////////////////////////////////////////
      // 연습문제1
        function add(num1, num2){
            console.log("입력값:", num1, num2);
            console.log("출력값:",num1 + num2);
        }
        let input_num = add(10,20);
        console.log(input_num);

        // 연습문제2
        function max(num1, num2){
            console.log("입력값:", num1, num2);
            if(num1 > num2){
                console.log("출력값:", num1);
            }
            else if(num2 > num1){
                console.log("출력값:", num2);
            }
        }
        let max_num = max(10,20);
        console.log(max_num);

        // 연습문제3
        function vendingMachine(input_value){
            if(input_value==1000){
                return "콜라";
            }
            else if(input_value==2000){
                return "이온음료";
            }
            else if(input_value==3000){
                return "햄버거";
            }
        }
        console.log(vendingMachine(1000));
        console.log(vendingMachine(2000));
        console.log(vendingMachine(3000));
    </script>
</head>
<body>
</body>
</html>

0개의 댓글