AI · 자동화 · 홈페이지 제작 · IT 강의

업무를 자동화하고
수익형 웹 시스템을 만듭니다

코드콕콕은 실무 중심의 IT 강의, AI 사무자동화, 홈페이지 제작, 업무 자동화 외주 상담을 제공하는 기술 블로그입니다.

Code KokKok

배우고, 만들고, 자동화하는 실무형 IT 블로그

AI 사무자동화

엑셀, 문서, PPT, 반복 업무를 자동화합니다.

자세히 보기

홈페이지 제작

회사, 교육원, 상담 사이트를 목적에 맞게 제작합니다.

자세히 보기

IT 실무 강의

HTML, CSS, JavaScript, Python, 자동화 강의를 제공합니다.

강의 보기

최신 글

총 41개의 글

자바 - 조건문1(if문)
No Image
자바 기본 변수
No Image
사다리타기
No Image
로또번호 추천
No Image
HTML Canvas로 테트리스 게임 만들기
No Image

자바 - 조건문1(if문)

Java if문 예제 정리 - 짝수 홀수, 합격 불합격, 교체법, 최대값 최소값

이번 글에서는 Java의 if문을 이용한 기본 예제를 정리합니다. 짝수와 홀수 판별, 평균 점수로 합격 여부 판단, 두 변수의 값 교환, 최대값과 최소값 구하기, 그리고 Scanner를 이용한 입력 처리까지 실습합니다.

if문은 조건에 따라 실행할 문장을 선택하는 제어문입니다. 조건식의 결과가 true이면 if문이 실행되고, false이면 else문이 실행됩니다.

1. 짝수와 홀수 판별하기

정수 변수 a의 값을 2로 나누었을 때 나머지가 0이면 짝수입니다. 그렇지 않으면 홀수입니다.
package a20260506;

public class iftest1 {

    // 어떤 숫자를 입력받아서 그 수가 짝수이면 "짝수",
    // 아니면 "홀수", 마지막에 "끝" 출력

    public static void main(String[] args) {

        int a = 10;

        if (a % 2 == 0)
            System.out.println("짝수");
        else
            System.out.println("홀수");

        System.out.println("끝");
    }
}
실행 결과
짝수

2. 평균 점수로 합격 / 불합격 판단하기

국어, 영어, 수학 점수의 평균을 구한 뒤 평균이 60점 이상이면 합격, 그렇지 않으면 불합격을 출력합니다.
package a20260506;

public class iftest2 {

    // kor=90, eng=80, mat=30
    // 평균을 구하여 평균 60점 이상이면 "합격", 아니면 "불합격"

    public static void main(String[] args) {

        int kor, eng, mat;
        double avg;

        kor = 90;
        eng = 80;
        mat = 30;

        avg = (kor + eng + mat) / 3.;

        System.out.printf("평균=%f\t", avg);

        if (avg >= 60)
            System.out.println("합격");
        else
            System.out.println("불합격");
    }
}
실행 결과
평균=66.666667    합격
TIP
/ 3.처럼 소수점을 붙이면 실수 계산이 됩니다. 따라서 평균값을 소수점까지 정확하게 구할 수 있습니다.

3. 두 변수의 값 교환하기

두 변수의 값을 서로 바꾸려면 임시 변수 temp가 필요합니다. 이 방법을 교체법이라고 합니다.
package a20260506;

// 교체법 암기 a=10, b=20

public class iftest3 {

    public static void main(String[] args) {

        int a, b, temp;

        a = 10;
        b = 20;

        System.out.println("a=" + a + ",b=" + b);

        temp = a;
        a = b;
        b = temp;

        System.out.println("a=" + a + ",b=" + b);
    }
}
실행 결과
a=10,b=20
a=20,b=10

4. 가장 큰 수와 가장 작은 수 구하기

변수 maxmin에 처음 값을 저장한 뒤, 다른 값들과 비교하면서 최대값과 최소값을 찾습니다.
package a20260506;

// 가장 큰 수, 가장 작은 수

public class iftest4 {

    public static void main(String[] args) {

        int max, min;
        int a = 90, b = 50, c = 10;

        max = min = a;

        if (b > max)
            max = b;

        if (c > max)
            max = c;

        System.out.println("최대값=" + max);

        if (b < min)
            min = b;

        if (c < min)
            min = c;

        System.out.println("최소값=" + min);
    }
}
실행 결과
최대값=90
최소값=10

5. 5과목 평균과 과락 조건으로 합격 판단하기

Scanner를 이용하여 5과목 점수를 입력받습니다. 평균이 60점 이상이고 모든 과목이 40점 이상이면 합격입니다. 하나라도 조건을 만족하지 못하면 불합격입니다.
package a20260506;

import java.util.Scanner;

// 5과목의 평균이 60 이상이고 모든 과목이 40 이상이라야 "합격"
// 그 외는 "불합격"

public class iftest5 {

    public static void main(String[] args) {

        int a, b, c, d, e;
        double avg;

        Scanner sc = new Scanner(System.in);

        System.out.println("5과목을 순서대로 입력하세요");

        a = sc.nextInt();
        b = sc.nextInt();
        c = sc.nextInt();
        d = sc.nextInt();
        e = sc.nextInt();

        avg = (a + b + c + d + e) / 5.;

        if (avg >= 60 && a >= 40 && b >= 40 && c >= 40 && d >= 40 && e >= 40)
            System.out.println("합격");
        else
            System.out.println("불합격");
    }
}
실행 예시
5과목을 순서대로 입력하세요
90 80 70 60 50
합격
TIP
&&는 AND 연산자입니다. 연결된 조건이 모두 true일 때만 전체 조건이 true가 됩니다.

마무리 정리

이번 예제에서는 Java의 if문을 이용하여 조건에 따라 다른 결과를 출력하는 방법을 연습했습니다.

  • ifelse를 사용하면 조건에 따라 실행 흐름을 나눌 수 있습니다.
  • % 연산자는 나머지를 구할 때 사용하며 짝수와 홀수 판별에 활용됩니다.
  • && 연산자는 여러 조건을 모두 만족해야 할 때 사용합니다.
  • 두 변수의 값을 바꿀 때는 임시 변수 temp를 사용할 수 있습니다.
  • 최대값과 최소값은 기준값을 정한 뒤 비교하면서 구할 수 있습니다.
반응형

'IT_Internet > Java' 카테고리의 다른 글

Java의 사용자 정의 함수  (0) 2026.05.18
반복문-while  (0) 2026.05.08
반복문-for  (0) 2026.05.08
자바-조건문2(switch-case)  (0) 2026.05.07
자바 기본 변수  (0) 2026.05.07

업무 자동화나 홈페이지 제작이 필요하신가요?

AI 자동화, 엑셀/문서 자동화, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기

자바 기본 변수

자바 기초 실습 예제 정리

이번 글에서는 자바 기초 과정에서 가장 먼저 배우는 출력문, 변수, 자료형, 산술연산자, 비교연산자, 논리연산자, 형변환을 예제 코드와 실행 결과를 통해 정리합니다.

자바 프로그램은 보통 class 안에 작성되며, 프로그램 실행은 main() 함수에서 시작됩니다.

1. Hello 예제 - 문자열 출력

가장 기본적인 자바 프로그램입니다. System.out.println()은 화면에 내용을 출력하고 줄바꿈을 합니다.
public class Hello {

    // 메모리에는 정적메모리, 동적메모리가 있다.
    // 정적메모리에 main() 함수가 저장된다.
    // void는 리턴값이 없다는 의미이다.

    public static void main(String[] args) {
        System.out.println("안녕");
    }
}
실행 결과
안녕

2. 변수와 자료형

변수는 데이터를 저장하는 공간입니다. 자바에서는 변수에 저장할 값의 종류에 따라 자료형을 지정해야 합니다.
package a20260506;

public class test1 {

    public static void main(String[] args) {

        int a;
        a = 10;

        double b;
        b = 10.5;

        char c;
        c = 'k';

        boolean d;
        d = true;

        String e = "korea";
    }
}
설명
int는 정수, double은 실수, char는 문자 한 글자, boolean은 참/거짓, String은 문자열을 저장할 때 사용합니다.

3. 산술 연산자

산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 계산을 할 때 사용합니다.
package a20260506;

public class test2 {

    public static void main(String[] args) {

        int a, b, c, d, e, f, g;

        a = 10;
        b = 3;

        c = a + b;
        d = a - b;
        e = a * b;
        f = a / b;
        g = a % b;

        System.out.println(a + "+" + b + "=" + c);
        System.out.println(a + "-" + b + "=" + d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
    }
}
실행 결과
10+3=13
10-3=7
30
3
1

4. 비교 연산자와 논리 연산자

비교 연산자는 두 값을 비교하여 결과를 true 또는 false로 반환합니다. 논리 연산자는 여러 조건을 연결할 때 사용합니다.
package a20260506;

public class test3 {

    public static void main(String[] args) {

        int a = 10, b = 3;
        boolean t;

        t = a >= b;
        System.out.println(t);

        t = (a + 3) != 3;
        System.out.println(t);

        t = a * b == b + 3;
        System.out.println(t);

        t = (a > 3) && !(b > 3) || (a < b);
        System.out.println(t);
    }
}
실행 결과
true
true
false
true

5. 누적 계산 기초

변수의 값을 증가시키고, 그 값을 다른 변수에 누적하는 기본 예제입니다. 반복문을 배우기 전 누적 개념을 이해할 때 좋습니다.
package a20260506;

public class test4 {

    public static void main(String[] args) {

        int a = 0, hap = 0;

        a = a + 1;
        hap = hap + a;

        System.out.println(a + "," + hap);
    }
}
실행 결과
1,1

6. 비트 반전 연산자

~ 연산자는 비트 값을 반전합니다. 음수 표현과 2의 보수 개념을 이해할 때 사용하는 예제입니다.
package a20260506;

public class test5 {

    public static void main(String[] args) {

        int a = -90;

        System.out.println(~a);
        System.out.println(~a + 1);
    }
}
실행 결과
89
90

7. 삼항 연산자

삼항 연산자는 조건에 따라 서로 다른 값을 선택할 때 사용합니다. 형식은 조건 ? 참일 때 값 : 거짓일 때 값입니다.
package a20260506;

public class test6 {

    public static void main(String[] args) {

        int kor = 60;

        boolean max = (kor > 60) ? true : false;
        String maxi = (kor >= 60) ? "합격" : "불합격";

        System.out.println(max);
        System.out.println(maxi);
    }
}
실행 결과
false
합격

8. 가장 큰 값 구하기

삼항 연산자를 이용하여 세 개의 정수 중 가장 큰 값을 구하는 예제입니다.
package a20260506;

public class test7 {

    public static void main(String[] args) {

        int a = 100, b = 70, c = 50, max;

        max = (a > b) ? a : b;
        max = (max > c) ? max : c;

        System.out.println(max);
    }
}
실행 결과
100

9. 형변환

형변환은 자료형을 다른 자료형으로 바꾸는 것입니다. 큰 자료형에서 작은 자료형으로 바꿀 때는 명시적 형변환이 필요합니다.
package a20260506;

public class test8 {

    public static void main(String[] args) {

        int num = (int) 3.5;
        double sum = 5;

        System.out.println(num);
        System.out.println(sum);
    }
}
실행 결과
3
5.0

마무리 정리

이번 예제에서는 자바의 가장 기본이 되는 문법을 실습했습니다. 출력문, 변수, 자료형, 연산자, 삼항 연산자, 형변환은 앞으로 조건문과 반복문, 함수, 객체지향 문법을 배우기 위한 기초가 됩니다.
반응형

'IT_Internet > Java' 카테고리의 다른 글

Java의 사용자 정의 함수  (0) 2026.05.18
반복문-while  (0) 2026.05.08
반복문-for  (0) 2026.05.08
자바-조건문2(switch-case)  (0) 2026.05.07
자바 - 조건문1(if문)  (0) 2026.05.07

업무 자동화나 홈페이지 제작이 필요하신가요?

AI 자동화, 엑셀/문서 자동화, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기

사다리타기

사다리타기 게임 만들기 (JavaScript 구현)

이 예제는 HTML Canvas와 JavaScript를 활용하여 만든 사다리타기 게임입니다. 인원수를 입력하고 결과 항목을 설정하면, 자동으로 사다리가 생성되고 각 참가자의 이동 경로를 애니메이션으로 확인할 수 있습니다.

Canvas 위에 세로선과 가로선을 그리고, JavaScript로 경로를 계산하여 참가자가 어떤 결과에 도착하는지 보여주는 구조입니다.

사다리 설정

Player 1

선물1

사용 방법

  1. 인원수를 입력합니다. 최소 2명부터 최대 10명까지 설정할 수 있습니다.
  2. 사다리 생성 버튼을 누르면 인원수에 맞게 결과 입력칸이 만들어집니다.
  3. 각 입력칸에 선물, 벌칙, 메뉴, 팀 이름 등 원하는 결과를 입력합니다.
  4. 1번부터 시작 버튼을 누르면 1번 참가자부터 순서대로 사다리를 타기 시작합니다.
  5. 각 참가자의 이동 경로가 색상 선으로 표시되고, 도착한 결과가 팝업으로 나타납니다.
  6. 모든 참가자가 완료되면 버튼이 전부 완료 상태로 바뀝니다.

결과를 다시 정하고 싶다면 인원수나 결과 항목을 수정한 뒤 사다리 생성 버튼을 다시 누르면 됩니다.

활용 예시

  • 점심 메뉴 정하기
  • 벌칙 정하기
  • 선물 추첨하기
  • 팀 배정하기
  • 발표 순서 정하기

사다리타기 게임은 단순한 놀이처럼 보이지만, JavaScript의 배열 처리, Canvas 그리기, 이벤트 처리, 애니메이션 로직을 함께 학습할 수 있는 좋은 예제입니다.

웹 개발을 처음 배우는 분들도 이 구조를 따라가면 인터랙티브한 웹 도구를 만드는 흐름을 이해할 수 있습니다.

반응형

'IT_Internet > Game' 카테고리의 다른 글

로또번호 추천  (0) 2026.05.01
HTML Canvas로 테트리스 게임 만들기  (0) 2026.05.01

업무 자동화나 홈페이지 제작이 필요하신가요?

AI 자동화, 엑셀/문서 자동화, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기

로또번호 추천

로또 번호 추첨기 (JavaScript 구현)

이 프로그램은 JavaScript와 Canvas를 활용하여 만든 로또 번호 추첨기입니다. 공이 회전하며 섞인 후 랜덤으로 6개의 번호가 추출되는 구조로 구현되어 있습니다.

실제 로또 머신처럼 물리 움직임을 적용하여 자연스럽게 번호가 선택되도록 구성하였습니다. 아래 버튼을 눌러 직접 추첨을 실행해보세요.

Lotto 6/45

 

핵심 기능

  • 1 ~ 45번 공 랜덤 생성  1번부터 45번 공을 전부 만들어서 원 안에 넣습니다.
  • for (let i = 1; i <= 45; i++) balls.push(new Ball(i));
    
  • 공의 충돌 및 회전 물리 구현
  • 6개 번호 자동 추출
  • 다시 추첨 기능

이 코드를 활용하면 다양한 랜덤 추첨 프로그램이나 게임 기능으로 확장할 수 있습니다.

로또 당첨은 어떤 사람이 될까?

1. 꿈이 정말 알려줄까?

실제로 당첨자들 사이에서 '꿈'은 가장 흔한 당첨 징조로 꼽힙니다. 당첨자 인터뷰 사례에서 좋은 꿈 이야기가 자주 등장하며, 아래와 같은 유형이 특히 많이 언급됩니다.

  • 조상님 꿈: 가장 대표적인 사례입니다. 조상님이 나타나 밝은 미소를 지으시거나, 숫자를 알려주거나, 보따리를 주시는 꿈이 많습니다.
  • 동물 및 자연 꿈: 돼지 떼가 집으로 들어오는 꿈, 온 세상이 불바다가 되는 꿈, 맑은 물이 집 안에 가득 차는 꿈 등이 자주 언급됩니다.
  • 유명인 꿈: 대통령이나 유명한 연예인과 악수를 하거나 함께 식사를 하는 꿈을 꾸고 당첨된 사례도 있다고 알려져 있습니다.

물론 꿈이 당첨을 보장하는 것은 아닙니다. 다만 기대감과 설렘이 생겼을 때 복권을 구매하게 되는 심리적 계기가 된다는 점에서 흥미로운 현상입니다.

2. 통계로 분석이 가능할까?

로또는 기계에서 공이 무작위로 추출되는 독립 시행입니다. 따라서 엄밀히 말하면 '다음 번호'를 예측하는 수학적 방법은 존재하지 않습니다. 하지만 '기록'으로서의 통계는 존재합니다.

  • 자주 나오는 번호: 특정 회차 동안 유난히 자주 등장한 '핫 넘버(Hot Numbers)'와 오랫동안 나오지 않은 '콜드 넘버(Cold Numbers)'를 조합하는 방식입니다.
  • 번호대별 균형: 1번대, 10번대, 20번대 등 각 구간에서 골고루 번호가 섞여 나오는 비율을 분석합니다.
  • 홀짝 및 총합: 홀수와 짝수의 비율(3:3 또는 2:4), 그리고 여섯 숫자 합계의 평균 범위(보통 120~180 사이)를 참고하기도 합니다.
  • 현실적인 통계: 역대 당첨자들의 통계를 보면, 자동 선택 비중이 수동보다 압도적으로 높습니다(약 60~70%). 결국 통계적 분석보다는 '운'과 '꾸준함'이 더 큰 요인임을 보여줍니다.

3. 당첨된 사람들의 실제 사례

어떤 사람들이 당첨되는지에 대한 흥미로운 특징들입니다.

  • 소액으로 꾸준히: 당첨자들의 상당수는 한꺼번에 수십만 원어치를 사는 사람이 아니라, 매주 5,000원에서 10,000원 정도를 규칙적으로 구매해 온 사람들이라고 합니다.
  • 우연한 구매: 거스름돈으로 샀거나, 평소에 안 가던 길에서 눈에 띄는 판매점에 들어가 샀다가 당첨된 사례가 아주 많습니다.
  • 나눔의 습관: 당첨자 인터뷰 중에는 "평소에 주변에 베푸는 마음으로 살았는데 복을 받은 것 같다"는 이야기가 종종 등장합니다.

로또 역대 최다 빈출 번호 알아볼까요?

역대 로또(1회~1222회)에서 통계적으로 가장 자주 등장한 숫자 상위 6개와 최근 흐름을 반영한 조합의 예시는 다음과 같습니다.

 

📊 역대 최다 빈출 번호 (보너스 번호 포함 기준)

역대 가장 많이 뽑힌 숫자들을 순서대로 나열하면 보통 다음과 같은 번호들이 상위권을 차지합니다. (데이터 집계 시점에 따라 1~2단계 차이는 있을 수 있습니다.)

  1. 43: 압도적인 1위 후보로 자주 등장합니다.
  2. 34: 최근 몇 년간 빈도가 급상승한 번호입니다.
  3. 12: 초창기부터 꾸준히 나오는 번호입니다.
  4. 27: 20번대 중 가장 강력한 통계를 가집니다.
  5. 1: 첫 번째 번호로 자주 등장하는 상징적인 숫자입니다.
  6. 33: 쌍둥이 번호 중 가장 출현 빈도가 높습니다.

🎲 'Hot Numbers' 기반 추천 조합

위의 통계적 빈도와 최근 10회차 이내의 흐름을 섞어서 번호를 구성해 본다면 다음과 같은 조합이 가능합니다.

[ 1, 12, 27, 33, 34, 43 ]

 

반응형

'IT_Internet > Game' 카테고리의 다른 글

사다리타기  (0) 2026.05.01
HTML Canvas로 테트리스 게임 만들기  (0) 2026.05.01

업무 자동화나 홈페이지 제작이 필요하신가요?

AI 자동화, 엑셀/문서 자동화, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기

HTML Canvas로 테트리스 게임 만들기

HTML5 Canvas로 테트리스 게임 만들기

이 글에서는 JavaScript와 Canvas를 활용하여 테트리스 게임을 구현하는 방법을 설명합니다. 블록 이동, 회전, 충돌 판정, 점수 계산 등 게임의 핵심 로직을 직접 구현할 수 있습니다.

아래 게임을 직접 실행해보면서 동작 원리를 확인해보세요.

Score

0

Level

1

Lines

0

Rotate
← → Move
Soft Drop
Space Hard Drop

GAME OVER

Next Piece

핵심 로직

1. createMatrix()
게임판 배열을 생성하는 함수입니다.
테트리스 게임판은 10칸 × 20줄 구조이며, 각 칸은 0 또는 블록 번호를 저장합니다.
0은 빈 칸을 의미하고, 1~7은 서로 다른 테트리스 블록 색상을 의미합니다.

 

2. drawBoard()
canvas 위에 현재 게임판을 다시 그리는 함수입니다.
먼저 기존 화면을 지우고, 격자선을 그린 다음, 고정된 블록과 현재 떨어지고 있는 블록을 함께 출력합니다.

 

3. collide()
현재 블록이 벽, 바닥, 기존 블록과 충돌했는지 확인합니다.
블록이 이동하거나 회전할 때마다 이 함수를 사용하여 가능한 움직임인지 검사합니다.

 

4. merge()
떨어지던 블록이 더 이상 내려갈 수 없을 때, 해당 블록을 게임판 배열에 고정합니다.
이후 새로운 블록이 생성됩니다.

 

5. sweep()
가로 한 줄이 모두 채워졌는지 검사하고, 채워진 줄을 제거합니다.
줄이 제거되면 점수가 올라가고, 일정 줄 수 이상이 되면 레벨이 증가합니다.

 

6. update()
게임 루프를 담당하는 함수입니다.
requestAnimationFrame()을 이용해 화면을 계속 갱신하고, 일정 시간이 지나면 블록이 자동으로 한 칸씩 내려가도록 처리합니다.

 

테트리스 구현 핵심 정리

테트리스는 2차원 배열을 활용하여 블록의 위치를 관리하며, 충돌 감지와 회전 알고리즘을 통해 동작합니다.

이러한 구조를 이해하면 다양한 게임이나 인터랙티브 웹 기능으로 확장할 수 있습니다.

 

 
반응형

'IT_Internet > Game' 카테고리의 다른 글

사다리타기  (0) 2026.05.01
로또번호 추천  (0) 2026.05.01

업무 자동화나 홈페이지 제작이 필요하신가요?

AI 자동화, 엑셀/문서 자동화, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기