
Java
break
import java.util.Scanner;
public class ForDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("### 프로그램 시작");
for (int i = 1; i <= 5; i++) {
System.out.println("숫자를 입력하세요");
int number = sc.nextInt();
System.out.println("입력한 숫자 : " + number);
if (number <= 0) {
break;
}
}
sc.close();
System.out.println("### 프로그램 종료");
}
}

continue
for (int i = 1; i <= 10; i++) {
if (i == 5) {
continue;
}
System.out.println("i의 값: " + i);
}
While문
- for문에 비하여 구조가 간단한 반복문이다.
- 반복횟수를 알 수 없는 경우 사용하는 반복문이다.
- while문을 사용해서 반복작업을 수행할 때는 대상 객체는 반복 지속여부를 조회할 수 있는 기능을 제공해야 한다.
- while문을 사용하면 무한루프를 간단히 구현할 수 있다.
import java.util.Scanner;
public class WhileDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int balance = 10_000;
while(true) {
System.out.println("============================================");
System.out.println(" 1.결제 2.충전 0.종료");
System.out.println("============================================");
System.out.print("메뉴를 선택하세요 : ");
int menuNo = sc.nextInt();
if (menuNo == 1) {
System.out.println("[결제를 진행합니다.]");
System.out.print("사용 금액을 입력하세요 : ");
int amount = sc.nextInt();
if(balance >= amount) {
balance -= amount;
System.out.println("사용금액 : " + amount);
System.out.println("결제 후 잔액 : " + balance + "원");
System.out.println("[결제가 완료되었습니다.]");
} else {
System.out.println("[에러] 잔액이 부족합니다.");
System.out.println("현재 잔액 : " + balance + "원");
System.out.println("[결제를 중단합니다.]");
}
} else if (menuNo == 2) {
System.out.println("[충전을 진행합니다.]");
System.out.print("충전할 금액을 입력하세요 : ");
int amount = sc.nextInt();
balance += amount;
System.out.println("충전 후 잔액 : " + balance);
System.out.println("[충전이 완료되었습니다.]");
} else if (menuNo == 0) {
System.out.println("[서비스를 종료합니다.]");
break;
} else {
System.out.println("[에러] 메뉴를 다시 선택하세요");
}
System.out.println();
System.out.println();
System.out.println();
}
sc.close();
}
}
배열
- 배열은 여러 개의 데이터를 저장할 수 있다.
- 배열을 이용하면 하나의 변수명으로 여러 개의 데이터를 관리할 수 있다.
- 배열은 순서대로 번호(인덱스)가 붙은 요소들이 연속적인 형태로 저장된다.
- 각 요소에 부여되는 번호(인덱스)는 0번부터 시작하며, 각 요소마다 순서대로 번호(인덱스)가 부여된다.
- 인덱스의 범위는 아래와 같다.
- 배열에 저장된 데이터는 번호(인덱스)로 각 요소에 접근할 수 있다.
- 자바의 배열은 일정한 크기를 가진다.
- 자바의 배열은 한 번 정해진 크기를 변경할 수 없다.
- 자바의 배열은 동일한 타입의 값만 저장할 수 있다.
배열의 정의 및 활용
- 배열 정의
- 형식
- 데이터타입[] 변수명 = new 데이터타입[크기];
- 데이터타입[] 변수명 = {값, 값, 값, 값, ...};
- 데이터타입[] 변수명 = new 데이터타입[]{값, 값, 값, 값, ...};
- 빈 배열의 정의



배열 예시
int[] numbers = new int[5];
double[] points = new double[5];
String[] names = new String[5];
int x0 = numbers[0];
int x1 = numbers[1];
int x2 = numbers[2];
int x3 = numbers[3];
int x4 = numbers[4];
System.out.println(x0);
System.out.println(x1);
System.out.println(x2);
System.out.println(x3);
System.out.println(x4);
double y0 = points[0];
double y1 = points[1];
double y2 = points[2];
double y3 = points[3];
double y4 = points[4];
System.out.println(y0);
System.out.println(y1);
System.out.println(y2);
System.out.println(y3);
System.out.println(y4);
String s0 = names[0];
String s1 = names[1];
String s2 = names[2];
String s3 = names[3];
String s4 = names[4];
System.out.println(s0);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
int[] scores = {80, 60, 100};
String[] categories = {"뉴스", "연예", "스포츠", "자동차", "쇼핑"};
int score1 = scores[0];
int score2 = scores[1];
int score3 = scores[2];
System.out.println(score1);
System.out.println(score2);
System.out.println(score3);
String cat1 = categories[0];
String cat2 = categories[1];
String cat3 = categories[2];
String cat4 = categories[3];
String cat5 = categories[4];
System.out.println(cat1);
System.out.println(cat2);
System.out.println(cat3);
System.out.println(cat4);
System.out.println(cat5);
int[] balances = new int[3];
String[] depts = new String[3];
String[] subjects = {"국어", "영어", "수학"};
balances[0] = 1000000;
balances[2] = 23000;
depts[0] = "전자공학과";
depts[1] = "컴퓨터공학과";
depts[2] = "통계학과";
subjects[2] = "수학2";
System.out.println("학과명 배열의 크기 : " + depts.length);
for (int i = 0; i < depts.length; i++) {
String deptName = depts[i];
System.out.println("학과명 : " + deptName);
}
System.out.println("잔액 배열의 크기 : " + balances.length);
for (int i = 0; i < balances.length; i++) {
int amount = balances[i];
System.out.println("잔액 : " + amount);
}
System.out.println("과목 배열의 크기 : " + subjects.length);
for (int i = 0; i < subjects.length; i++) {
System.out.println("과목명 : " + subjects[i]);
}
배열의 활용
String[] names = {"김유신", "홍길동", "이순신"};
int[] korScores = {100, 90, 50};
int[] engScores = {100, 80, 20};
int[] mathScores = {100, 70, 30};
System.out.println("### 수강신청 학생 목록 ###");
for (String x : names) {
System.out.println("학생이름 : " + x);
}
System.out.println("### 김유신 학생의 국어, 영어, 수학 점수 ###");
System.out.println(names[0] + "," + korScores[0] + "," +engScores[0] + "," + mathScores[0]);
System.out.println("### 국어점수의 총점과 평균 ###");
int korTotal = 0;
int korAverage = 0;
for (int kor : korScores) {
korTotal += kor;
}
korAverage = (int) (korTotal / korScores.length);
System.out.println("국어 점수 총합 : " + korTotal);
System.out.println("국어 점수 평균 : " + korAverage);
System.out.println("### 수학점수의 총점과 평균 ###");
int mathTotal = 0;
int mathAverage = 0;
for (int math : mathScores) {
mathTotal += math;
}
mathAverage = (int) (mathTotal / mathScores.length);
System.out.println("수학 점수 총합 : " + mathTotal);
System.out.println("수학 점수 평균 : " + mathAverage);
System.out.println("### 영어점수의 총점과 평균 ###");
int engTotal = 0;
int engAverage = 0;
for (int eng : engScores) {
engTotal += eng;
}
engAverage = (int) (engTotal / engScores.length);
System.out.println("영어 점수 총합 : " + engTotal);
System.out.println("영어 점수 평균 : " + engAverage);
System.out.println("### 전체 학생 성적정보 출력 ###");
for (int i = 0; i < names.length; i++) {
String studentName = names[i];
int kor = korScores[i];
int eng = engScores[i];
int math = mathScores[i];
int total = kor + eng + math;
int average = (int) (total / names.length);
System.out.printf("%s%5d%5d%5d%5d%5d\n", studentName, kor, eng, math, total, average);