본문 바로가기
Back-End/Java

[java] continue와 break 그리고 배열

by LeeGangEun 2022. 2. 3.

Continu란?

continu 문은 반복문을 빠져나가지 않으면서 즉시 다음 반복으로 넘어가고자할 때 사용된다. 

break 문은 현재 반복문을 벗어나게 하지만, continue 문은 즉시 다음 반복으로 넘어간다.

 

continu문을 이용하여 양수 합 구하기

import java.util.Scanner;

public class ContinueExample {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수를 5개 입력하세요.");
		int sum = 0;
		for (int i=1; i<=5; i++) {
			int n = sc.nextInt();
			if(n <= 0)
				continue;
                else   // 없어도 실행 가능
				sum += n;
		}
		System.out.println("양수의 합은 " + sum + "입니다.");
		sc.close();
	}
	
}

break란?

break 문은 하나의 반복문을 즉시 벗어날 때 사용하며 다음과 같이 사용한다.

 

break문을 이용하여 while문 벗어나기

import java.util.Scanner;

public class BreakExample {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		
		System.out.println("exit를 입력하면 종료됩니다.");
		
		while(true) {
			String text = sc.nextLine();
			if(text.equals("exit")) {    // 문자열 비교 함수 - equals
				System.out.println("프로그램이 종료됩니다.");
				break;
			}else {
				System.out.println(text +"을 입력했습니다.");
			}
		}
		sc.close();
	}

}

 

배열(Array)이란?

배열은 index와 index에 대응하는 데이터들로 이루어진 연속적인 자료구조로, 같은 종류의 데이터들이 순차적으로 저장된다. 

(1) 10개의 변수를 사용한 경우

(2) 자바의 배열을 사용한 경우

 

 

 

배열 선언 및 생성

자바에서 배열의 생성은 다음 두 단계로 이루어 진다.

• 배열에 대한 레퍼런스 변수 선언   

• 배열 생성 - 배열의 저장 공간 할당

 

배열에 입력받은 수 중  제일 큰 수 찾기

import java.util.Scanner;

public class ArrayAccess {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int intArray[] = new int[5];
		int max = 0;
		for(int i = 0; i<5; i++) {     // for(int i = 0; i<intArray.legnth; i++) 로 하는게 좋다.
			intArray[i] = sc.nextInt();
			if(intArray[i] > max) {
				max = intArray[i];
			}

		}
		System.out.println("가장 큰 수는 " + max + "입니다.");
		sc.close();
	}

}  // 기초적인 알고리즘 ..
   // 사실 큰 수 찾는 메소드가 이미 있다

2차원 배열의 선언과 생성

1차원 배열과 마찬가지로 2차원 배열에서도 래퍼런스 변수 선언 후 배열을 생성한다.

2차원 배열의 래퍼런스 변수를 선언하는 방법은 다음 두가지가 있다.

 

이제, 2차원 배열의 저장 공간은 다음과 같이 new 연산자를 이용하여 생성하며, 첫번째 []는 행의 개수, 

두번째 []는 열의 개수를 나타낸다.

2차원 배열로 4년 평점 구하기

public class ScoreAverage {

	public static void main(String[] args) {
		double score[][] = {{3.3, 3.4},		//1학년 1,2학기 평점
							{3.5, 3.6},		//2학년 1,2학기 평점
							{3.7, 4.0},		//3학년 1,2학기 평점
							{4.1, 4.2}};	//4학년 1,2학기 평점
		
		double sum =0;
		for(int year = 0; year<score.length; year++) // 각 학년별로 반복
			for(int term=0; term<score[year].length; term++) //학기별로 반복
				sum += score[year][term]; // 전체 평점 합
		
		int n = score.length;	 // 배열의 행 개수, 4(4학년)
		int m = score[0].length; // 배열의 열 개수, 2(2학기)
		System.out.println("4년 전체 평점 평균은 " + sum/(n*m));
		
		}
}

 

 

-------------------강사님 강의 메모 ------------------------

실행시 에러(Runtime Error)
: 정상적으로 실행되다가 갑자기 발생하는 에러
=> 런타임에러가 발생하면 프로그램이 종료됨.

Java에서는 Runtime Error를 Exception이라고 부름.
예외처리는 Exception이 발생했을 때 프로그램이 종료되지 않게함.

고가용성(High Availabilith)을 보장.

--------------------------------------------------------------

5일차 연습문제

 

1부터 100까지 홀수 출력하기 (continue) 사용

public class quiz_05_1 {
	
	public static void main(String[] args) {
		
		for (int i =1; i<=100; i++) {
			if(i%2==0)
				continue;
			System.out.print(i + " ");
		}
	}
}

1부터 100까지 3의 배수만 출력하기 (continue) 사용

public class quiz_05_2 {
	public static void main(String[] args) {
		
		for(int i=1; i<=100; i++) {
			if(i%3!=0)
				continue;
			System.out.print(i + " ");
		}
		
	}
}

학생 이름, 국어, 영어, 수학 점수를 입력하여 평균을 구해서 출력하는 프로그램을 작성하시오.                                          반복하다가 "exit"를 입력하면 종료.

import java.util.Scanner;

public class quiz_05_3 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			System.out.println("이름 국어 영어 수학 점수를 차례대로 입력해주세요.");
		
			String name = sc.next();
			if(name.equals("exit")) {
				System.out.print("프로그램을 종료합니다.");
				break;
			}	
			
			int a = sc.nextInt();
			int b = sc.nextInt();
			int c = sc.nextInt();
			
			System.out.println(name + " 학생의 평균점수는 " + ((double)(a+b+c)/3) + "입니다.\n" );
		}	
	}
}

3번 문제를 배열로 만들어서 작성하시오.

import java.util.Scanner;

public class quiz_05_4 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int intArray[] = new int[3];
		double sum = 0;
		
		while(true) {
			System.out.println("이름 국어 영어 수학 점수를 차례대로 입력해주세요.");
			String name = sc.next();
			
			if(name.equals("exit")) {
				System.out.println("프로그램을 종료합니다.");
			}
			
			for(int i = 0; i<intArray.length; i++) {
				intArray[i] = sc.nextInt();
				
				sum += intArray[i]; 
			}
			
			System.out.println(name + " 학생의 평균점수는 " + sum/3 + "입니다.\n" );
			
		}
	}
}

 

'Back-End > Java' 카테고리의 다른 글

[java] 접근지정자  (0) 2022.02.07
[java] 예외처리, 객체지향, 클래스  (0) 2022.02.04
[java] 조건문과 반복문  (0) 2022.01.28
[java] 연산자와 Scanner  (0) 2022.01.27
[java] 개발환경의 변화와 자바의 시초  (0) 2022.01.26