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 |