본문 바로가기
수업내용

20230501 수업내용🤦‍♂️🤦‍♂️

by titlejjk 2023. 5. 1.

자바스크립트 중에서 setInterval, setTimeout 함수 사용해보기

setTimeout()👉

일정 시간 후에 특정 코드, 함수를 의도적으로 지연한 뒤 실행하고 싶을 때 사용하는 함수.

setTimeout(function(){}, delat time);

setInterval()👉

지정된 시간 간격마다 지정된 기능을 반복하고자 할 때 사용한다.

setInterval(function(){}, delat time);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Step09_example.html</title>
</head>
<body>
    <h1>setInterval, setTimeout 함수 사용해 보기</h1>
    <p>
        <strong id = "min">0</strong>분
        <strong id = "sec">0</strong>초
    </p>
    <script>
        //Interval 함수 안에서 사용할 변수를 만들고 0 으로 초기화 하기
        let sec = 0;
        let min = 0;
        setInterval(()=>{
            //초를 1씩 증가 시킨다
            sec++; // sec = sec + 1 or sec +=1
            //만일 증가 시킨 초가 60이면 분을 1씩 증가 시킨다.
            if(sec == 60){
                min++;
                sec = 0;
            }
            //초와 분을 위의 strong 요소의 innerText 로 각각 출력한다.
            document.querySelector("#min").innerText = min;
            document.querySelector("#sec").innerText = sec;
        }, 1000);
       
        setInterval(()=>{
            document.querySelector("#sec").innerText = +1;
        }, 10);
        //setTimeout, setInterval 함수는 javascript builtin 함수 이다.
        setTimeout(()=>{
            console.log("setTimeout 에 전달한 함수가 호출되네?");
        }, 1000);

         setInterval(()=>{
            console.log("setInterval 에 전달한 함수가 호출되네?")
         }, 1000);
    </script>
</body>
</html>

이를 이용한 분 초 계산

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Step09_example2.html</title>
</head>
<body>
    <h1>스탑워치 만들어보기</h1>
    <p>
        <strong id = "min">0</strong> :
        <strong id = "sec">0</strong> :
        <strong id = "mSec">0</strong>
    </p>
    <button id = "startBtn">시작</button>
    <button id = "resetBtn">재설정</button>
    <script>
        //변수 선언을 한번에 여러개 하기
        let min = 0, sec = 0, mSec = 0;
        //상태값을 관리할 변수를 만들고 초기 상태값 대입하기
        let isStarted = false;

        document.querySelector("#startBtn").addEventListener("click",(e)=>{
            //이벤트가 일어난 요소의 innerText 를 바꾸기
            
            //만일 시작된 state 라면 "중단"으로 바꾸고

            //중단된 state(시작된 state가 아니라면) 라면 "시작" 으로 바꾼다.

            if(isStarted){
                isStarted = false;
                e.target.innerText = "시작";
            }else{
                isStarted = true;
                e.target.innerText = "중단";
                
            }
        });

        setInterval(()=>{
            //만일 시작된 상태가 아니라면 함수를 여기서 종료하기
            if(isStarted == false){ //if(!isStarted)
                return;
            }
            //1/100초 마다 한번씩 호출되는 함수
            mSec++;
            if(mSec == 100){
                sec++;
                mSec = 0;
            }
            if(sec == 60){
                min++;
                sec = 0;
            }
            document.querySelector("#mSec").innerText = mSec;
            document.querySelector("#sec").innerText = sec;
            document.querySelector("#min").innerText = min;
        }, 10);
        document.querySelector("#resetBtn").addEventListener("click",()=>{
            //변수를 모두 초기화
            mSec = 0, sec = 0, min = 0;
            isStarted = false;
            //초기화된 값을 화면에 반영
            document.querySelector("#mSec").innerText = mSec;
            document.querySelector("#sec").innerText = sec;
            document.querySelector("#min").innerText = min;
            //버튼의 innerText 도 초기화
            document.querySelector("#startBtn").innerText = "시작";
        });
    </script>
</body>
</html>

확장for문

package test.main;

import test.mypac.Bike;

public class MainClass04 {
	public static void main(String[] args) {
		
	/*
	 *  1. Bike 객체를 담을 수 있는 방 3개짜리 배열객체를 생성해서 참조값을
	 *     bike 라는 지역 변수에 담아보세요.
	 *  2. 배열의 각각의 방 (0,1,2번)에 Bike 객체를 생성해서 담아보세요.
	 *  3. 반복문 for를 이용해서 순서대로 배열의 각각의 방에 있는 Bike객체의 ride() 메소드를 호출해 보세요.
	 *
	 */
		Bike[] bike = new Bike[3];
		bike[0] = new Bike();
		bike[1] = new Bike();
		bike[2] = new Bike();
		
		for(int i = 0; i < bike.length; i++) {
			//i번째 방에 있는 Bike 객체의 참조값을 얻어와서 임시변수 tmp에 담기
			Bike tmp = bike[i];
			//객체의 참조값이 들어있는 tmp에 . 을 입력하고 메소드 호출
			bike[i].ride();
		}
		System.out.println("--- 확장 for 문을 사용하면 ---");
		for(Bike tmp:bike) {
			tmp.ride();
		}
		
	}
}

자바의 Scanner에 대해서 배우고있다.

package test.main;

import java.util.Scanner;

public class MainClass06 {
	String[] msgs;
	public static void main(String[] args) {
		System.err.println("요기다 입력을 하세요.");
		// 1. 문자열을 저장할수 있는 방 5개짜리 배열 객체를 생성해서 참조값을 msgs 라는 지역변수에 담는다.
		String[] msgs = new String[5];
		// 2. 키보드로 부터 입력 받을 수 있는 Scanner 객체를 생성해서 참조값을 scan 이라는 지역변수에 담는다.
		Scanner scan = new Scanner(System.in);
		// 3. 반복문을 위에서 생성한 배열의 방의 갯수 만큼 돌면서 키보드로 부터 문자열을 입력받아서
		//    배열에 순서대로 저장한다.
		for(int i = 0; i < msgs.length; i++) {
			System.err.print( i + " 번째 " + " 입력을 하세요 : ");
			String str = scan.nextLine();
			msgs[i] = str;
		}
		// 4. 반복문 돌면서 배열에 저장되었던 모든 문자열을 순서대로 콘솔창에 출력한다.
		for(String tmp:msgs) {
			System.out.print(tmp);
		}
		
	
		
		
	}
}

random 연산자를 이용한 다양한 예제

package test.main;

import java.util.Random;

public class QuizMain3 {
   public static void main(String[] args) {
      /*
       *	3. 우연히 3개가 모두 같게 나왔을때는 "당첨됬습니다!"를 출력하고
       *	   하나라도 다르면 " 꽝 " 을 출력하도록 프로그래밍해 보세요.
       *
       *	apple | apple | cherry
       *	꽝
       *
       *	apple | apple | apple
       *	당첨됬습니다!
       *
       */
      String[] items={"cherry", "apple", "banana", "melon", "7"};
      //랜덤한 숫자를 얻어내기 위한 객체 
      Random ran=new Random();
      //정수 3개를 저장할 배열 미리 준비 하기
      int[] nums = new int[3];
      // 3회 반복하면서 
      for(int i=0; i<3; i++) {
         // 0~4 사이의 랜덤한 숫자를 하나 얻어내서 
         int ranNum=ran.nextInt(5);
         //얻어낸 숫자를 배열의 i번째 방에 저장하기
         nums[i] = ranNum;
         // 배열의 인덱스로 활용해서 문자열 출력하기
         System.out.print(items[ranNum]);
         if(i<2) {
            System.out.print(" | ");
         }
        }
      //만일 랜덤한 숫자가 모두 같으면
      if(nums[0] == nums[1] && nums[1] == nums[2]) {
        	 System.out.println(" 당첨됬습니다! ");
         }else {
        	 System.out.println(" 꽝 ");
         }
   		}
}

 

'수업내용' 카테고리의 다른 글

20230503 수업내용🤣🤣  (0) 2023.05.03
20230502 국비학원😁  (0) 2023.05.02
20230428 수업내용😂😂  (0) 2023.05.01
20230427 수업내용🤦‍♂️  (0) 2023.04.27
20230426 수업내용🤦‍♂️  (0) 2023.04.26

댓글