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

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

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

Code KokKok

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

AI 사무자동화

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

자세히 보기

홈페이지 제작

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

자세히 보기

IT 실무 강의

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

강의 보기

최신 글

총 28개의 글

엑셀에서 우편번호 가져오기
No Image
파이썬으로 배우는 데이터 분석과 머신러닝 기초 - 비지도학습
No Image
배열
No Image
Java의 사용자 정의 함수
No Image
반복문-while
No Image
반복문-for
No Image
자바-조건문2(switch-case)
No Image
자바 - 조건문1(if문)
No Image
자바 기본 변수
No Image
사다리타기
No Image

엑셀에서 우편번호 가져오기

엑셀 VBA로 도로명주소 우편번호 자동 조회하기 (Juso API 활용)

엑셀에 저장된 주소 데이터를 하나씩 검색하는 작업은 시간이 매우 많이 걸립니다. 이번 글에서는 행정안전부 주소기반산업지원서비스의 Juso API를 활용해, VBA에서 도로명주소 우편번호를 자동으로 가져오는 방법을 정리해보겠습니다.

이번 예제에서는 주소 정제 → API 호출 → 우편번호 자동 입력까지 전체 흐름을 VBA로 구현합니다.

Juso API 사이트

우편번호 검색 API는 아래 버튼을 통해 신청 후 사용할 수 있습니다.

Juso API 사이트 바로가기
TIP
API 사용 전 반드시 승인 키(confmKey)를 발급받아야 합니다.

1. 주소 데이터 정제하기

API 검색 정확도를 높이기 위해 괄호, 대괄호, 쉼표 이후 문자열 등을 제거합니다. 특히 "외 n필지" 같은 문구는 검색 실패 원인이 되는 경우가 많습니다.
Option Explicit

Sub 주소정제복사()

    Dim 선택영역 As Range
    Dim 셀 As Range

    Dim 원본주소 As String
    Dim 정제주소 As String

    Dim 새열번호 As Long

    If TypeName(Selection) <> "Range" Then
        MsgBox "주소 열을 먼저 선택하세요.", vbExclamation
        Exit Sub
    End If

    If Selection.Columns.Count > 1 Then
        MsgBox "한 개 열만 선택하세요.", vbCritical
        Exit Sub
    End If

    Set 선택영역 = Selection

    선택영역.Columns(1).Offset(0, 1).EntireColumn.Insert

    새열번호 = 선택영역.Column + 1

    Cells(선택영역.Row, 새열번호).Value = "정제주소"

    For Each 셀 In 선택영역.Cells

        If 셀.Row > 선택영역.Row Then

            원본주소 = Trim(셀.Value)

            If 원본주소 <> "" Then

                정제주소 = 원본주소

                정제주소 = RemoveAfterChar(정제주소, "(")
                정제주소 = RemoveAfterChar(정제주소, "[")
                정제주소 = RemoveAfterChar(정제주소, ",")

                Dim p As Long

                p = InStr(정제주소, "외 ")

                If p > 0 Then
                    정제주소 = Left(정제주소, p - 1)
                End If

                Do While InStr(정제주소, "  ") > 0
                    정제주소 = Replace(정제주소, "  ", " ")
                Loop

                정제주소 = Trim(정제주소)

                Cells(셀.Row, 새열번호).Value = 정제주소

            End If

        End If

    Next 셀

    MsgBox "주소 정제 완료", vbInformation

End Sub
실행 결과
불필요한 괄호 및 추가 문자열이 제거된 정제 주소가 오른쪽 열에 자동 생성됩니다.

2. VBA에서 Juso API 호출하기

이제 정제된 주소를 기반으로 실제 우편번호를 조회합니다. VBA에서는 MSXML2.XMLHTTP 객체를 이용해 HTTP GET 요청을 보냅니다.
url = "https://business.juso.go.kr/addrlink/addrLinkApi.do?" & _
      "confmKey=" & apiKey & _
      "&currentPage=1" & _
      "&countPerPage=1" & _
      "&keyword=" & WorksheetFunction.EncodeURL(주소) & _
      "&resultType=json"

Set http = CreateObject("MSXML2.XMLHTTP")

http.Open "GET", url, False
http.Send

결과 = http.responseText
실행 결과
API 응답 JSON 데이터가 문자열 형태로 반환됩니다.
TIP
WorksheetFunction.EncodeURL()을 사용해야 한글 주소가 정상 전송됩니다.

3. JSON 응답에서 우편번호 추출하기

반환된 JSON 데이터 안에는 zipNo 항목이 포함되어 있습니다. 문자열 함수로 간단하게 추출할 수 있습니다.
시작위치 = InStr(결과, """zipNo"":""")

If 시작위치 > 0 Then

    시작위치 = 시작위치 + 9
    끝위치 = InStr(시작위치, 결과, """)

    우편번호 = Mid(결과, 시작위치, 끝위치 - 시작위치)

Else

    우편번호 = "검색실패"

End If
실행 결과
검색 성공 시 우편번호가 추출되어 엑셀 셀에 자동 입력됩니다.

4. 전체 자동화 매크로

아래 코드는 선택한 주소 영역 전체를 반복 처리하면서 우편번호를 자동 입력하는 완성형 VBA 예제입니다.
Option Explicit

Sub 우편번호가져오기()

    Dim 선택영역 As Range
    Dim 셀 As Range

    Dim http As Object
    Dim url As String
    Dim 결과 As String

    Dim 시작위치 As Long
    Dim 끝위치 As Long

    Dim 우편번호 As String
    Dim 주소 As String

    Dim apiKey As String
    apiKey = "발급받은 API KEY 입력"

    Set 선택영역 = Selection

    선택영역.Columns(선택영역.Columns.Count).Offset(0, 1).EntireColumn.Insert

    선택영역.Cells(1, 선택영역.Columns.Count + 1).Value = "우편번호"

    For Each 셀 In 선택영역.Cells

        If 셀.Row > 선택영역.Row Then

            If Trim(셀.Value) <> "" Then

                주소 = CleanAddress(셀.Value)

                url = "https://business.juso.go.kr/addrlink/addrLinkApi.do?" & _
                      "confmKey=" & apiKey & _
                      "&currentPage=1" & _
                      "&countPerPage=1" & _
                      "&keyword=" & WorksheetFunction.EncodeURL(주소) & _
                      "&resultType=json"

                Set http = CreateObject("MSXML2.XMLHTTP")

                http.Open "GET", url, False
                http.Send

                결과 = http.responseText

                시작위치 = InStr(결과, """zipNo"":""")

                If 시작위치 > 0 Then

                    시작위치 = 시작위치 + 9
                    끝위치 = InStr(시작위치, 결과, """)

                    우편번호 = Mid(결과, 시작위치, 끝위치 - 시작위치)

                Else

                    우편번호 = "검색실패"

                End If

                셀.Offset(0, 1).Value = 우편번호

            End If

        End If

    Next 셀

    MsgBox "우편번호 입력 완료", vbInformation

End Sub
실행 결과
선택한 주소 목록 전체에 우편번호가 자동 입력됩니다.

마무리 정리

VBA와 Juso API를 조합하면 대량 주소 데이터의 우편번호를 매우 빠르게 자동화할 수 있습니다. 특히 부동산 데이터, 고객 주소록, 배송지 목록 관리 업무에서 활용도가 높습니다.

```
  • 주소 정제를 먼저 해야 검색 성공률이 올라갑니다.
  • MSXML2.XMLHTTP 객체로 API 호출이 가능합니다.
  • JSON 응답의 zipNo 값을 추출해 우편번호를 자동 입력할 수 있습니다.
```
반응형

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

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

상담 신청하기

파이썬으로 배우는 데이터 분석과 머신러닝 기초 - 비지도학습

스포츠센터 고객 데이터 분석으로 무엇을 알 수 있을까?

트레이닝 붐 덕분에 스포츠센터 회원 수는 늘었지만, 어느 순간부터 고객 수가 정체되는 경우가 많습니다.

특히 “자주 오는 고객은 계속 오지만, 가끔 오는 고객은 어느새 사라지는 현상”은 대부분의 스포츠센터에서 공통적으로 발생합니다.

이럴 때 단순 감각이 아니라 데이터 분석을 통해 고객 행동을 분석하면 오래 유지되는 고객, 이탈 가능성이 높은 고객, 신규 고객 중 위험 고객, 이벤트 효과 등을 확인할 수 있습니다.

STEP 1분석에 사용할 데이터 확인하기

이번 프로젝트에서는 스포츠센터 고객 데이터를 여러 CSV 파일로 나누어 관리한다고 가정합니다.

  • use_log.csv : 회원 이용 기록
  • customer_master2.csv : 회원 기본 정보
  • class_master.csv : 회원 구분
  • campaign_master.csv : 캠페인 정보

초보자 팁: 고객 분석을 시작할 때는 먼저 “고객 정보”, “방문 기록”, “가입 구분”, “캠페인 정보”처럼 데이터를 역할별로 나누어 이해하는 것이 좋습니다.

STEP 2데이터 전처리 과정 이해하기

먼저 여러 CSV 파일을 하나로 합칩니다. 고객 기본 정보에 회원 구분과 캠페인 정보를 붙여서 분석 가능한 형태로 만드는 과정입니다.

customer_join1 = pd.merge(customer, class_master, on="class", how="left") customer_join2 = pd.merge(customer_join1, campaign_master, on="campaign_id", how="left")

그다음 고객의 이용 패턴을 계산합니다.

  • 월 평균 방문 횟수 : mean
  • 최대 방문 횟수 : max
  • 최소 방문 횟수 : min
  • 가입 개월 수 : membership_p
  • 규칙적 방문 여부 : routine_flg
uselog_customer = ( uselog_months.groupby("customer_id")["count"] .agg(["mean", "median", "max", "min"]) .reset_index() )

이렇게 만든 데이터가 머신러닝 모델에 들어가는 핵심 입력 데이터가 됩니다.

STEP 3KMeans로 고객을 자동 그룹화하기
KMeans란?

KMeans는 비슷한 고객끼리 자동으로 묶어주는 알고리즘입니다. 정답이 없는 상태에서 고객 유형을 찾는 비지도학습 방식입니다.

  • 운동을 자주 오는 사람
  • 가끔 오는 사람
  • 오래 다닌 VIP 고객
  • 신규 고객
model = KMeans(n_clusters=k, random_state=41, n_init=10) df["cluster"] = model.fit_predict(x_scaled)
군집 특징 예시
Cluster 0 오래 다니며 규칙적으로 운동하는 고객
Cluster 1 가입한 지 얼마 되지 않은 신규 회원
Cluster 2 방문 횟수가 적은 이탈 위험 고객
Cluster 3 이벤트 할인으로 가입한 고객

스포츠센터에서는 이 결과를 활용해 VIP 고객에게는 PT나 프리미엄 회원권을 추천하고, 이탈 위험 고객에게는 문자 발송, 쿠폰 제공, 전화 상담 등을 진행할 수 있습니다.

STEP 4KNN으로 비슷한 고객과 비교해 예측하기
KNN이란?

KNN은 “비슷한 고객들이 과거에 어떻게 행동했는가?”를 기준으로 현재 고객의 행동을 예측하는 알고리즘입니다.

예를 들어 비슷한 패턴의 고객 5명이 모두 탈퇴했다면, 현재 고객도 탈퇴 가능성이 높다고 판단할 수 있습니다.

model = KNeighborsClassifier(n_neighbors=5) model.fit(x_train_scaled, y_train)
항목 설명
방식 거리 기반 예측
중요 요소 데이터 표준화
장점 이해하기 쉽고 직관적
단점 데이터가 많으면 느릴 수 있음

예를 들어 월 평균 방문 1회, 가입 기간 2개월, 규칙적 방문 없음인 고객은 과거 탈퇴 고객과 비슷한 패턴으로 분류될 수 있습니다.

즉, KNN은 “이 고객은 이탈 가능성이 높다”는 예측에 활용할 수 있습니다.

 

STEP 5DecisionTree로 이탈 원인 설명하기
DecisionTree란?

DecisionTree는 말 그대로 의사결정 나무입니다. 질문을 단계적으로 하면서 결과를 예측합니다.

가입 기간이 3개월 이하인가? ├─ 예 │ ├─ 방문 횟수가 적은가? │ │ ├─ 예 → 이탈 가능성 높음 │ │ └─ 아니오 → 유지 가능성 있음 └─ 아니오 └─ 장기 회원
model = DecisionTreeClassifier(random_state=42, max_depth=5) model.fit(x_train, y_train)
항목 설명
방식 규칙 기반 예측
장점 해석이 쉬움
단점 과적합 가능성
특징 시각화 가능
  • 가입 2개월 이하 + 방문 감소 → 이탈 위험
  • 주 3회 이상 방문 → 유지 확률 높음
  • 이벤트 가입 고객 → 초기 이탈률 높음

DecisionTree는 단순히 예측만 하는 것이 아니라 “왜 고객이 이탈하는가?”를 설명하는 데 도움이 됩니다.

STEP 6KMeans, KNN, DecisionTree 비교하기
구분 KMeans KNN DecisionTree
목적 고객 그룹화 고객 예측 규칙 기반 예측
학습 방식 비지도학습 지도학습 지도학습
결과 군집 번호 예측값 규칙
장점 고객 유형 발견 단순하고 직관적 설명력이 뛰어남
단점 군집 수 결정 필요 느릴 수 있음 과적합 가능
스포츠센터 활용 고객 분류 이탈 예측 이탈 원인 분석
체크리스트
  • 고객 기본 정보와 이용 기록을 하나로 합쳤는가?
  • 월 평균 방문 횟수, 최대 방문 횟수, 최소 방문 횟수를 계산했는가?
  • 가입 개월 수와 규칙적 방문 여부를 만들었는가?
  • KMeans로 고객 유형을 나누었는가?
  • KNN 또는 DecisionTree로 이탈 가능성을 예측했는가?
  • 예측 결과를 실제 상담, 문자, 쿠폰, 이벤트 기획에 연결했는가?

 

마무리

스포츠센터 고객 데이터 분석은 단순히 숫자를 보는 작업이 아닙니다. 고객이 얼마나 자주 방문하는지, 어떤 고객이 오래 유지되는지, 어떤 고객이 이탈 위험이 높은지를 이해하는 과정입니다.

KMeans는 고객을 유형별로 나누는 데 적합하고, KNN은 비슷한 고객과 비교해 예측하는 데 유용합니다. DecisionTree는 예측 결과를 규칙으로 설명할 수 있어 현장에서 이해하기 쉽습니다.

결국 중요한 것은 분석 결과를 실제 운영에 연결하는 것입니다. 이탈 위험 고객에게는 빠른 상담을 진행하고, 충성 고객에게는 적절한 혜택을 제공하면 스포츠센터 운영 전략을 더 체계적으로 세울 수 있습니다.

반응형

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

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

상담 신청하기

배열

Java 배열 기초 예제 정리: 1차원 배열, 합격 판정, 개수 세기, 최대값과 최소값

이번 글에서는 Java의 1차원 배열을 이용한 기본 예제를 정리합니다. 배열 생성과 초기화부터 시작해서 평균 계산, 조건 판정, 특정 조건을 만족하는 값의 개수 세기, 그리고 최대값과 최소값을 구하는 방법까지 차례대로 살펴보겠습니다.

배열은 같은 자료형의 값을 여러 개 저장할 때 사용하는 구조입니다. 배열의 인덱스는 0부터 시작하며, 마지막 인덱스는 배열길이 - 1입니다.

1. 배열 생성과 값 출력하기

첫 번째 예제는 정수형 배열을 만드는 방법입니다. new int[5]를 사용하면 정수 5개를 저장할 수 있는 배열이 만들어집니다. 또한 {10,20,30,40,50}처럼 값을 바로 넣어 배열을 초기화할 수도 있습니다.
package a20260507;

// 1차원 배열 int a[5]
// 2차원 배열 a[][]

public class arraytest1 {

    public static void main(String[] args) {

        int a[] = new int[5];

        a[0] = 10;
        a[1] = 20;
        a[2] = 30;
        a[3] = 40;
        a[4] = 50;

        int[] b = {10, 20, 30, 40, 50};

        for (int i = 0; i < 5; i++) {
            System.out.println(a[i] + "," + b[i]);
        }
    }
}
실행 결과
10,10
20,20
30,30
40,40
50,50
TIP
배열의 값을 출력할 때는 반복문을 자주 사용합니다. 배열 길이가 바뀔 수 있는 경우에는 i < a.length처럼 작성하는 것이 좋습니다.

2. 평균을 구하고 합격 / 불합격 판정하기

두 번째 예제는 과목 점수 배열의 평균을 구한 뒤 합격 여부를 판단하는 코드입니다. 평균이 60점 미만이거나, 한 과목이라도 40점 미만이면 불합격입니다. 이 예제에서는 마지막 점수가 35점이므로 평균은 60점 이상이지만 과락 조건 때문에 불합격입니다.
package a20260507;

public class arraytest2 {

    // 과목의 평균을 구하고,
    // 평균이 60 미만이거나 한 과목이라도 40 미만이면 "불합격"
    // 그 외에는 "합격"

    public static void main(String[] args) {

        int[] a = {100, 80, 70, 60, 35};
        int sum = 0;
        double avg = 0.;
        boolean pass = true;

        for (int i = 0; i < a.length; i++) {
            sum = sum + a[i];
        }

        avg = sum / 5.;

        if (avg < 60) pass = false;

        for (int i = 0; i < a.length; i++) {
            if (a[i] < 40) {
                pass = false;
                break;
            }
        }

        if (pass == true) System.out.println("합격");
        else System.out.println("불합격");
    }
}
실행 결과
불합격
TIP
break는 반복문을 즉시 종료할 때 사용합니다. 이 코드에서는 40점 미만인 과목을 발견하면 더 이상 검사할 필요가 없으므로 break를 사용했습니다.

3. 60점 이상인 점수의 개수 세기

세 번째 예제는 배열 안에서 60점 이상인 값이 몇 개인지 세는 코드입니다. 조건을 만족하면 count 값을 1씩 증가시킵니다.
package a20260507;

public class arraytest3 {

    public static void main(String[] args) {

        int[] a = {90, 80, 55, 50, 100, 80, 77, 45};
        int count = 0;

        for (int i = 0; i < a.length; i++) {
            if (a[i] >= 60) count = count + 1;
        }

        System.out.println(count);
    }
}
실행 결과
5

4. 배열에서 최대값과 최소값 구하기

네 번째 예제는 배열의 값 중에서 가장 큰 값과 가장 작은 값을 찾는 코드입니다. 처음에는 maxmin을 배열의 첫 번째 값으로 설정한 뒤, 나머지 값들과 비교하면서 최대값과 최소값을 갱신합니다.
package a20260507;

public class arraytest4 {

    // 최대값(max)과 최소값(min) 구하기
    // a = 90, 80, 55, 50, 100, 80, 77, 45
    // max = 100
    // min = 50

    public static void main(String[] args) {

        int[] a = {90, 80, 55, 50, 100, 80, 77, 45};
        int max, min;

        max = min = a[0];

        for (int i = 1; i < a.length; i++) {
            if (a[i] > max) max = a[i];
            if (a[i] < min) min = a[i];
        }

        System.out.println("최대값=" + max);
        System.out.println("최소값=" + min);
    }
}
실행 결과
최대값=100
최소값=50
TIP
최대값과 최소값을 구할 때는 보통 배열의 첫 번째 값을 기준값으로 잡습니다. 그 다음 두 번째 값부터 마지막 값까지 비교하면 됩니다.

반응형

'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 강의 상담을 도와드립니다.

상담 신청하기

Java의 사용자 정의 함수

Java 함수 기초 예제 모음: 반환값, 매개변수, 배열, 정렬, 사칙연산

이번 글에서는 Java에서 함수를 만드는 기본 방법을 여러 예제로 정리합니다. 반환값이 없는 함수, 반환값이 있는 함수, 매개변수를 사용하는 함수, 배열을 인자로 받는 함수까지 차례대로 살펴봅니다. 또한 선택 정렬, 버블 정렬, 최대값과 최소값 구하기, 사칙연산 함수, 짝수 판별 함수도 함께 실습합니다.

학습 포인트
함수는 반복되는 코드를 하나의 기능으로 묶어 재사용할 수 있게 해 줍니다. Java에서는 반환값이 없을 때 void를 사용하고, 반환값이 있을 때는 int, boolean 같은 자료형을 메서드 이름 앞에 작성합니다.

1. 반환값과 매개변수를 사용하는 함수

첫 번째 예제는 1부터 10까지의 합을 구하는 함수를 여러 형태로 만든 코드입니다. sum()은 반환값 없이 바로 출력하고, sum1()은 계산 결과를 반환합니다. sum2(int x)는 1부터 x까지의 합을 구하고, sum3(int x, int y)는 x부터 y까지의 합을 구합니다.
package a20260508;

public class functionTest1 {

    // 리턴값이 없음
    public static void sum() {
        int hap = 0;

        for (int i = 1; i <= 10; i++) {
            hap = hap + i;
        }

        System.out.println(hap);
    }

    // 리턴값이 있음
    public static int sum1() {
        int hap = 0;

        for (int i = 1; i <= 10; i++) {
            hap = hap + i;
        }

        return hap;
    }

    // 파라메타(인자)가 있음
    public static int sum2(int x) {
        int hap = 0;

        for (int i = 1; i <= x; i++) {
            hap = hap + i;
        }

        return hap;
    }

    public static int sum3(int x, int y) {
        int hap = 0;

        for (int i = x; i <= y; i++) {
            hap = hap + i;
        }

        return hap;
    }

    public static void main(String[] args) {
        sum();

        int hap = sum1();
        System.out.println(hap);

        int hap2 = sum2(50);
        System.out.println(hap2);

        int hap3 = sum3(50, 100);
        System.out.println(hap3);
    }
}
실행 결과
55
55
1275
3825
TIP
return은 함수에서 계산한 값을 호출한 곳으로 돌려주는 역할을 합니다. 값을 반환하는 함수는 int hap = sum1();처럼 변수에 결과를 저장할 수 있습니다.

2. 배열을 이용한 선택 정렬과 버블 정렬

두 번째 예제는 배열을 정렬하는 함수입니다. selsort()는 선택 정렬 방식으로 작은 값을 앞으로 보내고, bubblesort()는 버블 정렬 방식으로 옆에 있는 값과 비교하면서 큰 값을 뒤로 보냅니다. prn() 함수는 배열의 값을 출력하는 역할을 합니다.
package a20260508;

public class functiontTest2 {

    public static void selsort(int a[]) {
        int temp;

        for (int i = 0; i < a.length - 1; i++) {
            for (int j = i + 1; j < a.length; j++) {
                if (a[i] > a[j]) {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
    }

    public static void prn(int a[]) {
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + ", ");
        }
        System.out.println();
    }

    public static void bubblesort(int a[]) {
        int temp;

        for (int i = 0; i < a.length - 1; i++) {
            for (int j = 0; j < a.length - 1; j++) {
                if (a[j] > a[j + 1]) {
                    temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int a[] = {10, 90, 8, 100, 1, 45, 56};
        int b[] = {90, 9, 8, 1, 10, 45, 56};

        selsort(a);
        prn(a);

        bubblesort(b);
        prn(b);
    }
}
실행 결과
1, 8, 10, 45, 56, 90, 100,
1, 8, 9, 10, 45, 56, 90,
선택 정렬은 기준 위치의 값과 뒤쪽 값들을 비교해서 작은 값을 앞으로 가져오는 방식입니다. 버블 정렬은 인접한 두 값을 비교하여 큰 값을 뒤쪽으로 이동시키는 방식입니다.

3. 배열에서 최대값과 최소값 구하기

세 번째 예제는 배열 안에서 가장 큰 값과 가장 작은 값을 찾는 함수입니다. 처음에는 배열의 첫 번째 값을 기준값으로 저장한 뒤, 반복문을 돌면서 더 큰 값 또는 더 작은 값이 나오면 기준값을 바꿉니다.
package a20260508;

public class functionTest3 {

    public static int max(int a[]) {
        int temp = a[0];

        for (int i = 1; i < a.length; i++) {
            if (a[i] > temp) {
                temp = a[i];
            }
        }

        return temp;
    }

    public static int min(int a[]) {
        int temp = a[0];

        for (int i = 1; i < a.length; i++) {
            if (a[i] < temp) {
                temp = a[i];
            }
        }

        return temp;
    }

    public static void main(String[] args) {
        int a[] = {90, 89, 70, 99, 34, 56};

        int ma = max(a);
        int mi = min(a);

        System.out.println("최대값=" + ma);
        System.out.println("최소값=" + mi);
    }
}
실행 결과
최대값=99
최소값=34

4. 사칙연산 함수 만들기

네 번째 예제는 더하기, 빼기, 곱하기, 나누기를 각각 함수로 만든 코드입니다. 두 정수를 매개변수로 받아 계산한 뒤 결과를 반환합니다.
package a20260508;

public class functionTest4 {

    public static int plus(int a, int b) {
        int c;
        c = a + b;
        return c;
    }

    public static int minus(int a, int b) {
        int c;
        c = a - b;
        return c;
    }

    public static int multiply(int a, int b) {
        int c;
        c = a * b;
        return c;
    }

    public static int divide(int a, int b) {
        int c;
        c = a / b;
        return c;
    }

    public static void main(String[] args) {
        System.out.println(plus(10, 5));
        System.out.println(minus(10, 5));
        System.out.println(multiply(10, 5));
        System.out.println(divide(10, 5));
    }
}
실행 결과
15
5
50
2
TIP
divide() 함수는 정수끼리 나누기 때문에 결과도 정수로 나옵니다. 예를 들어 10 / 4를 계산하면 소수점은 버려지고 2가 됩니다.

5. 짝수와 홀수 판별 함수 만들기

마지막 예제는 입력받은 숫자가 짝수인지 홀수인지 판별하는 코드입니다. isEven(int x) 함수는 x를 2로 나누었을 때 나머지가 0이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
package a20260508;

import java.util.Scanner;

public class funtionTest5 {

    public static boolean isEven(int x) {
        if (x % 2 == 0) {
            return true;
        } else {
            return false;
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        boolean result = isEven(a);

        if (result == true) {
            System.out.println("짝수");
        } else {
            System.out.println("홀수");
        }
    }
}
실행 결과 예시
입력값: 8
짝수

입력값: 7
홀수

마무리 정리

이번 글에서는 Java 함수의 기본 형태와 활용 방법을 여러 예제로 정리했습니다. 함수는 코드를 기능별로 나누어 관리하기 쉽게 만들고, 같은 기능을 여러 번 재사용할 수 있게 해 줍니다.

  • void 함수는 반환값 없이 실행만 수행합니다.
  • return이 있는 함수는 계산 결과를 호출한 곳으로 돌려줍니다.
  • 매개변수를 사용하면 함수에 필요한 값을 외부에서 전달할 수 있습니다.
  • 배열도 함수의 인자로 전달하여 정렬, 최대값, 최소값 계산 등에 활용할 수 있습니다.
  • boolean 함수는 조건 판별 결과를 true 또는 false로 반환할 때 사용합니다.
반응형

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

배열  (0) 2026.05.19
반복문-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 강의 상담을 도와드립니다.

상담 신청하기

반복문-while

Java 반복문 for문 예제 정리

이번 글에서는 Java의 for 반복문을 사용해서 숫자 출력, 짝수 출력, 배수 출력, 구구단 출력, breakcontinue 사용법을 실습합니다. 반복문은 같은 작업을 여러 번 실행할 때 사용하는 기본 문법입니다.

학습 포인트
for문의 초기값, 조건식, 증감식을 이해하고, 조건문 if와 함께 사용하여 원하는 값만 출력하는 방법을 익힙니다.

1. 1부터 100까지 출력하기

첫 번째 예제는 for문을 이용해서 1부터 100까지 순서대로 출력하는 코드입니다. 변수 a를 1부터 시작하여 100 이하일 때까지 1씩 증가시킵니다.
package a20260507;

public class fortest1 {
  public static void main(String[] xx) {

    // 1-100 출력
    for (int a = 1; a <= 100; a = a + 1) {
      System.out.println(a);
    }

  }
}
실행 결과
1
2
3
...
100

2. 1부터 100까지 짝수 출력하기

짝수는 2로 나누었을 때 나머지가 0인 수입니다. 따라서 a % 2 == 0 조건을 사용하면 짝수만 골라서 출력할 수 있습니다.
// 1-100 짝수 출력: 2, 4, 6, 8, ... 100
for (int a = 1; a <= 100; a++) {
  if (a % 2 == 0) {
    System.out.println(a);
  }
}
실행 결과
2
4
6
...
100

3. 1부터 100까지 3의 배수 출력하기

3의 배수는 3으로 나누었을 때 나머지가 0인 수입니다. a % 3 == 0 조건을 사용하면 3, 6, 9, 12와 같은 값을 출력할 수 있습니다.
// 1-100 3의 배수 출력: 3, 6, 9, 12, ...
for (int a = 1; a <= 100; a++) {
  if (a % 3 == 0) {
    System.out.println(a);
  }
}
실행 결과
3
6
9
...
99

4. 100부터 5까지 5의 배수 출력하기

이번에는 숫자를 증가시키는 것이 아니라 감소시키는 반복문입니다. a--를 사용해서 100부터 1까지 줄어들게 만들고, 그중 5의 배수만 출력합니다.
// 100-5 5의 배수 출력: 100, 95, 90, ... 5
for (int a = 100; a >= 1; a--) {
  if (a % 5 == 0) {
    System.out.println(a);
  }
}
실행 결과
100
95
90
...
5

5. 입력받은 단의 구구단 출력하기

Scanner를 사용하면 사용자가 입력한 값을 프로그램에서 사용할 수 있습니다. 아래 코드는 사용자가 단을 입력하면 해당 단의 구구단을 1부터 9까지 출력합니다.
package a20260507;

import java.util.Scanner;

// 구구단을 입력받아서 해당 단의 구구단 출력
public class 반복문test1 {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.println("단을 입력하세요");
    int a = sc.nextInt();

    for (int b = 1; b <= 9; b++) {
      System.out.println(a + "*" + b + "=" + (a * b));
    }
  }
}
실행 결과 예시
단을 입력하세요
2
2*1=2
2*2=4
2*3=6
...
2*9=18

6. 2단부터 9단까지 구구단 출력하기

이 예제는 중첩 반복문을 사용합니다. 바깥쪽 반복문은 단을 조절하고, 안쪽 반복문은 1부터 9까지 곱하는 값을 조절합니다. 한 줄에 3개의 단을 나란히 출력하기 위해 a, a + 1, a + 2를 함께 출력합니다.
package a20260507;

// 2-9단 구구단 출력
public class 반복문test2 {
  public static void main(String[] args) {
    int a, b;

    for (a = 2; a <= 9; a = a + 3) {
      for (b = 1; b <= 9; b++) {
        System.out.print(a + "*" + b + "=" + (a * b) + "\t");
        System.out.print((a + 1) + "*" + b + "=" + ((a + 1) * b) + "\t");
        System.out.println((a + 2) + "*" + b + "=" + ((a + 2) * b));
      }
      System.out.println();
    }
  }
}
실행 결과 일부
2*1=2   3*1=3   4*1=4
2*2=4   3*2=6   4*2=8
...

5*1=5   6*1=6   7*1=7
...

8*1=8   9*1=9   10*1=10
주의
위 코드에서 a = 8일 때 a + 2는 10이 됩니다. 따라서 실제 2단부터 9단까지만 출력하려면 10단이 출력되지 않도록 조건을 추가하는 것이 좋습니다.
// 10단이 출력되지 않도록 수정한 예
for (int a = 2; a <= 9; a = a + 3) {
  for (int b = 1; b <= 9; b++) {
    for (int dan = a; dan <= a + 2 && dan <= 9; dan++) {
      System.out.print(dan + "*" + b + "=" + (dan * b) + "\t");
    }
    System.out.println();
  }
  System.out.println();
}

7. continue로 특정 값 건너뛰기

continue는 현재 반복을 건너뛰고 다음 반복으로 넘어갈 때 사용합니다. 아래 코드는 1부터 10까지 중에서 3의 배수를 제외하고 출력합니다.
package a20260507;

// break, continue
public class 반복문test3 {
  public static void main(String[] args) {
    int a;

    // 1-10까지 중 3의 배수를 제외한 나머지만 출력
    for (a = 1; a <= 10; a++) {
      if (a % 3 == 0) {
        continue;
      }
      System.out.println(a);
    }
  }
}
실행 결과
1
2
4
5
7
8
10

8. break로 반복문 중단하기

break는 반복문을 즉시 종료할 때 사용합니다. 아래 코드는 1부터 10까지 반복하지만, a가 6을 넘어가면 반복문을 중단합니다. 그 전에 3의 배수인 값만 출력합니다.
// 1-10까지 3의 배수만 출력하고, 6을 넘어가면 중단
for (a = 1; a <= 10; a++) {
  if (a > 6) {
    break;
  }

  if (a % 3 == 0) {
    System.out.println(a);
  }
}
실행 결과
3
6
TIP
continue는 특정 반복만 건너뛰고, break는 반복문 전체를 종료합니다. 두 키워드는 반복문 제어에서 자주 사용되므로 차이를 정확히 기억해두는 것이 좋습니다.

마무리 정리

이번 글에서는 Java의 for문을 사용하여 숫자 출력, 배수 출력, 구구단 출력, 반복문 제어를 실습했습니다. 반복문은 프로그래밍의 핵심 문법이므로 다양한 예제로 충분히 연습하는 것이 중요합니다.

  • for문은 정해진 횟수만큼 코드를 반복할 때 사용합니다.
  • % 나머지 연산자를 사용하면 짝수, 홀수, 배수를 판별할 수 있습니다.
  • continue는 현재 반복을 건너뛰고, break는 반복문을 종료합니다.
  • 중첩 반복문을 사용하면 구구단처럼 행과 열이 있는 출력 구조를 만들 수 있습니다.

9. while문으로 1부터 100까지 출력하기

while문은 조건이 참인 동안 계속 반복을 실행하는 반복문입니다. for문과 비슷하지만 초기값과 증감식을 직접 작성해야 합니다.
package a20260507;

public class whiletest1 {

  // for(초기치; 종료조건; 증감치) { }
  // while(조건) { }

  public static void main(String[] args) {

    // 1-100 1씩 출력
    int a = 1;

    while(a <= 100) {
      System.out.println(a);
      a++;
    }

  }
}
실행 결과
1
2
3
...
100

10. while문으로 1부터 100까지 짝수의 합계 구하기

이번 예제는 while문과 조건문을 함께 사용해서 1부터 100까지의 짝수 합계를 구하는 코드입니다. 짝수일 때만 sum 변수에 값을 누적합니다.
// 1-100 짝수의 합계
int a = 1;
int sum = 0;

while(a <= 100) {
  if(a % 2 == 0) {
    sum = sum + a;
  }

  a++;
}

System.out.println("짝수의합계=" + sum);
실행 결과
짝수의합계=2550
TIP
sum = sum + a는 현재까지 저장된 합계에 a 값을 계속 누적하는 방식입니다. 반복문과 함께 매우 자주 사용되는 패턴입니다.

마무리 정리

이번 글에서는 Java의 for문과 while문을 사용하여 다양한 반복문 예제를 실습했습니다. 반복문의 구조를 이해하면 숫자 출력, 합계 계산, 구구단 출력과 같은 문제를 쉽게 해결할 수 있습니다.

  • for문은 반복 횟수가 정해진 경우에 많이 사용합니다.
  • while문은 조건 중심의 반복 처리에 적합합니다.
  • 조건문 if와 함께 사용하면 원하는 값만 선택해서 처리할 수 있습니다.
  • breakcontinue를 활용하면 반복문 흐름을 제어할 수 있습니다.
  • 반복문은 Java 기초 문법 중 가장 중요한 개념 중 하나입니다.
반응형

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

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

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

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

상담 신청하기

반복문-for

Java 반복문 for문 예제 정리

이번 글에서는 Java의 for 반복문을 사용해서 숫자 출력, 짝수 출력, 배수 출력, 구구단 출력, breakcontinue 사용법을 실습합니다. 반복문은 같은 작업을 여러 번 실행할 때 사용하는 기본 문법입니다.

학습 포인트
for문의 초기값, 조건식, 증감식을 이해하고, 조건문 if와 함께 사용하여 원하는 값만 출력하는 방법을 익힙니다.

1. 1부터 100까지 출력하기

첫 번째 예제는 for문을 이용해서 1부터 100까지 순서대로 출력하는 코드입니다. 변수 a를 1부터 시작하여 100 이하일 때까지 1씩 증가시킵니다.
package a20260507;

public class fortest1 {
  public static void main(String[] xx) {

    // 1-100 출력
    for (int a = 1; a <= 100; a = a + 1) {
      System.out.println(a);
    }

  }
}
실행 결과
1
2
3
...
100

2. 1부터 100까지 짝수 출력하기

짝수는 2로 나누었을 때 나머지가 0인 수입니다. 따라서 a % 2 == 0 조건을 사용하면 짝수만 골라서 출력할 수 있습니다.
// 1-100 짝수 출력: 2, 4, 6, 8, ... 100
for (int a = 1; a <= 100; a++) {
  if (a % 2 == 0) {
    System.out.println(a);
  }
}
실행 결과
2
4
6
...
100

3. 1부터 100까지 3의 배수 출력하기

3의 배수는 3으로 나누었을 때 나머지가 0인 수입니다. a % 3 == 0 조건을 사용하면 3, 6, 9, 12와 같은 값을 출력할 수 있습니다.
// 1-100 3의 배수 출력: 3, 6, 9, 12, ...
for (int a = 1; a <= 100; a++) {
  if (a % 3 == 0) {
    System.out.println(a);
  }
}
실행 결과
3
6
9
...
99

4. 100부터 5까지 5의 배수 출력하기

이번에는 숫자를 증가시키는 것이 아니라 감소시키는 반복문입니다. a--를 사용해서 100부터 1까지 줄어들게 만들고, 그중 5의 배수만 출력합니다.
// 100-5 5의 배수 출력: 100, 95, 90, ... 5
for (int a = 100; a >= 1; a--) {
  if (a % 5 == 0) {
    System.out.println(a);
  }
}
실행 결과
100
95
90
...
5

5. 입력받은 단의 구구단 출력하기

Scanner를 사용하면 사용자가 입력한 값을 프로그램에서 사용할 수 있습니다. 아래 코드는 사용자가 단을 입력하면 해당 단의 구구단을 1부터 9까지 출력합니다.
package a20260507;

import java.util.Scanner;

// 구구단을 입력받아서 해당 단의 구구단 출력
public class 반복문test1 {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.println("단을 입력하세요");
    int a = sc.nextInt();

    for (int b = 1; b <= 9; b++) {
      System.out.println(a + "*" + b + "=" + (a * b));
    }
  }
}
실행 결과 예시
단을 입력하세요
2
2*1=2
2*2=4
2*3=6
...
2*9=18

6. 2단부터 9단까지 구구단 출력하기

이 예제는 중첩 반복문을 사용합니다. 바깥쪽 반복문은 단을 조절하고, 안쪽 반복문은 1부터 9까지 곱하는 값을 조절합니다. 한 줄에 3개의 단을 나란히 출력하기 위해 a, a + 1, a + 2를 함께 출력합니다.
package a20260507;

// 2-9단 구구단 출력
public class 반복문test2 {
  public static void main(String[] args) {
    int a, b;

    for (a = 2; a <= 9; a = a + 3) {
      for (b = 1; b <= 9; b++) {
        System.out.print(a + "*" + b + "=" + (a * b) + "\t");
        System.out.print((a + 1) + "*" + b + "=" + ((a + 1) * b) + "\t");
        System.out.println((a + 2) + "*" + b + "=" + ((a + 2) * b));
      }
      System.out.println();
    }
  }
}
실행 결과 일부
2*1=2   3*1=3   4*1=4
2*2=4   3*2=6   4*2=8
...

5*1=5   6*1=6   7*1=7
...

8*1=8   9*1=9   10*1=10
주의
위 코드에서 a = 8일 때 a + 2는 10이 됩니다. 따라서 실제 2단부터 9단까지만 출력하려면 10단이 출력되지 않도록 조건을 추가하는 것이 좋습니다.
// 10단이 출력되지 않도록 수정한 예
for (int a = 2; a <= 9; a = a + 3) {
  for (int b = 1; b <= 9; b++) {
    for (int dan = a; dan <= a + 2 && dan <= 9; dan++) {
      System.out.print(dan + "*" + b + "=" + (dan * b) + "\t");
    }
    System.out.println();
  }
  System.out.println();
}

7. continue로 특정 값 건너뛰기

continue는 현재 반복을 건너뛰고 다음 반복으로 넘어갈 때 사용합니다. 아래 코드는 1부터 10까지 중에서 3의 배수를 제외하고 출력합니다.
package a20260507;

// break, continue
public class 반복문test3 {
  public static void main(String[] args) {
    int a;

    // 1-10까지 중 3의 배수를 제외한 나머지만 출력
    for (a = 1; a <= 10; a++) {
      if (a % 3 == 0) {
        continue;
      }
      System.out.println(a);
    }
  }
}
실행 결과
1
2
4
5
7
8
10

8. break로 반복문 중단하기

break는 반복문을 즉시 종료할 때 사용합니다. 아래 코드는 1부터 10까지 반복하지만, a가 6을 넘어가면 반복문을 중단합니다. 그 전에 3의 배수인 값만 출력합니다.
// 1-10까지 3의 배수만 출력하고, 6을 넘어가면 중단
for (a = 1; a <= 10; a++) {
  if (a > 6) {
    break;
  }

  if (a % 3 == 0) {
    System.out.println(a);
  }
}
실행 결과
3
6
TIP
continue는 특정 반복만 건너뛰고, break는 반복문 전체를 종료합니다. 두 키워드는 반복문 제어에서 자주 사용되므로 차이를 정확히 기억해두는 것이 좋습니다.

마무리 정리

이번 글에서는 Java의 for문을 사용하여 숫자 출력, 배수 출력, 구구단 출력, 반복문 제어를 실습했습니다. 반복문은 프로그래밍의 핵심 문법이므로 다양한 예제로 충분히 연습하는 것이 중요합니다.

  • for문은 정해진 횟수만큼 코드를 반복할 때 사용합니다.
  • % 나머지 연산자를 사용하면 짝수, 홀수, 배수를 판별할 수 있습니다.
  • continue는 현재 반복을 건너뛰고, break는 반복문을 종료합니다.
  • 중첩 반복문을 사용하면 구구단처럼 행과 열이 있는 출력 구조를 만들 수 있습니다.
반응형

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

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

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

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

상담 신청하기

자바-조건문2(switch-case)

Java switch문으로 학점 계산과 사칙연산 만들기

이번 글에서는 Java의 switch문을 이용해 학점을 출력하는 예제와 사칙연산 계산기를 만드는 예제를 살펴봅니다. 조건이 여러 개로 나뉘는 상황에서는 if문뿐만 아니라 switch문도 자주 사용됩니다.

학습 포인트
switch문은 하나의 값에 따라 실행할 코드를 선택할 때 사용합니다. case, break, default의 역할을 이해하는 것이 중요합니다.

1. 점수에 따라 학점 출력하기

첫 번째 예제는 정수 점수를 입력받아 학점을 출력하는 프로그램입니다. 점수를 10으로 나눈 몫을 기준으로 A, B, C, D, F 학점을 구분합니다.
package a20260506;

import java.util.Scanner;

public class switchtest1 {

    public static void main(String[] args) {

        int score;

        Scanner sc = new Scanner(System.in);

        score = sc.nextInt();

        switch (score / 10) {
            case 10:
            case 9:
                System.out.println("A학점");
                break;

            case 8:
                System.out.println("B학점");
                break;

            case 7:
                System.out.println("C학점");
                break;

            case 6:
                System.out.println("D학점");
                break;

            default:
                System.out.println("F학점");
        }

        sc.close();
    }
}
실행 예시
입력값: 100
출력값: A학점
TIP
case 10: 아래에 실행문이 없기 때문에 바로 case 9:로 이어집니다. 그래서 100점과 90점대 점수는 모두 A학점으로 처리됩니다.

2. switch문으로 사칙연산 계산기 만들기

두 번째 예제는 명령행 인자 args를 이용해 두 숫자와 연산자를 입력받고, 연산자에 따라 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하는 프로그램입니다.
package a20260506;

public class switchtest2 {

    public static void main(String[] args) {

        int a, b;
        char ch;

        a = Integer.valueOf(args[0]);
        ch = args[1].charAt(0);
        b = Integer.valueOf(args[2]);

        switch (ch) {
            case '+':
                System.out.printf("%d\n", (int) '+');
                System.out.println(a + b);
                break;

            case '-':
                System.out.println(a - b);
                break;

            case '*':
                System.out.println(a * b);
                break;

            case '/':
                System.out.println(a / b);
                break;

            default:
                System.out.println("잘못된 연산자입니다.");
        }
    }
}
실행 예시
실행 명령: java switchtest2 10 + 3
출력값:
43
13
TIP
문자 '+'를 정수로 변환하면 아스키 코드값인 43이 출력됩니다. args[1].charAt(0)은 문자열로 입력된 연산자에서 첫 번째 문자만 꺼내는 코드입니다.

마무리 정리

이번 글에서는 Java switch문을 이용해 학점 계산 프로그램과 간단한 사칙연산 계산기를 만들어 보았습니다.

  • switch는 하나의 값에 따라 여러 실행 흐름을 나눌 때 사용합니다.
  • break가 없으면 다음 case까지 이어서 실행될 수 있습니다.
  • default는 어떤 case에도 해당하지 않을 때 실행됩니다.
  • 문자도 switch문의 조건값으로 사용할 수 있습니다.
반응형

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

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

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

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

상담 신청하기

자바 - 조건문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 강의 상담을 도와드립니다.

상담 신청하기