
예제 3-1: for문을 이용하여 1부터 10까지 합 출력하기
문제: for문을 이용하여 1부터 10까지 덧셈으로 표시하고 합을 출력하라.
package chap03;
//예제 3-1
//for문을 이용하여 1부터 10까지 덧셈으로 표시하고 합을 출력
public class ForSample{
public static void main(String[] args) {
int i, sum=0;
for(i=1; i<=10;i++) {
if(i<=9) {
System.out.print(i+"+");
sum+=i;
}
else if(i==10) {
sum+=i;
System.out.print(i+"="+sum);
}
}
}
}
//출력결과
1+2+3+4+5+6+7+8+9+10=55
예제 3-2: while문을 이용하여 입력된 정수의 평균 구하기
문제: while문을 이용하여 정수를 여러 개 입력 받고 평균을 출력하라. 0이 입력되면 입력을 종료한다.
package chap03;
//예제 3-2
import java.util.Scanner;
public class WhileSample {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in); //scanner 선언
int count=0, n=0; //정수 count, n 선언
double sum=0; //실수형 sum 선언
System.out.println("정수를 입력하고 마지막에 0을 입력하세요.");
while((n=scanner.nextInt())!=0) { //입력받은 정수 n이 아니면
sum=sum+n; //sum과 n의 합
count++; //count 1 증가
}
System.out.println("수의 개수는 "+count+"개이며");
System.out.println("평균은 "+sum/count+"개입니다.");
scanner.close(); //scanner 선언 종료
}
}
//출력결과
정수를 입력하고 마지막에 0을 입력하세요.
10 30 -20 40 0
수의 개수는 4개이며 평균은 15.0입니다.
예제 3-3 : do-while문을 이용하여 'a'에서 'z'까지 출력하기
문제: do-while문을 이용하여 'a'부터 'z'까지 출력하는 프로그램을 작성하라.
package chap03;
//예제 3-3
public class DoWhileSample {
public static void main(String[] args) {
char a='a';
do {
System.out.print(a);
a=(char)(a+1);
}while(a<='z');
}
}
//출력결과
abcdefghijklmnopqrstuvwxyz
예제 3-4 : 2중 중첩을 이용한 구구단 출력하기
문제: 2중 중첩된 for문을 이용하여 구구단을 출력하는 프로그램을 작성하라.
package chap03;
public class NestedLoop {
//예제 3-4
public static void main(String[] args) {
for(int i=1; i<10;i++) {
for(int j=1;j<10;j++) {
System.out.print(i+"*"+j+"="+i*j); //구구셈 출력
System.out.print("\t"); //하나씩 탭으로 띄기
}
System.out.println(); //한 단이 끝나면 다음 줄로 커서 이동
}
}
}
예제 3-5 : continue문을 이용하여 양수 합 구하기
문제: 5개의 정수를 입력 받고 양수 합을 구하여 출력하는 프로그램을 작성하라.
package chap03;
//예제 3-5
import java.util.Scanner;
public class ContinueExample {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("정수를 5개 입력하세요.");
int sum=0; //정수형 sum=0 선언
for(int i=0;i<5;i++) {
int n=scanner.nextInt();
if(n<=0)continue; //0이나 음수의 경우 더하지 않고 반복 진행
else sum+=n; // 양수인 경우 sum+n;
}
System.out.println("양수의 합은 "+sum);
scanner.close();
}
}
//출력결과
정수를 5개 입력하세요.
5 -2 6 10 -4
양수의 합은 21
예제 3-6 : break문을 이용하여 while문 벗어나기
문제:"exit"이 입력되면 while문을 벗어나도록 break문을 활용하는 프로그램을 작성하라.
package chap03;
import java.util.Scanner;
//예제 3-6
public class BreakExample {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("exit을 입력하면 종료합니다.");
while(true) {
System.out.print(">>");
String text=scanner.nextLine();
if(text.equals("exit")) //"exit"이 입력되면 반복 종료
break; //while문 벗어남.
}
System.out.println("종료합니다.");
scanner.close();
}
}
//출력결과
exit을 입력하면 종료합니다
>>edit
>>exit
종료합니다.
예제 3-7 : 배열 선언 및 생성
문제:양수 5개를 입력 받아 배열에 저장하고, 제일 큰 수를 출력하는 프로그램을 작성하라.
package chap03;
//예제 3-7
import java.util.Scanner;
public class ArrayAccess {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int intArray[];
intArray=new int[5]; //5개의 크기로 배열 선언
int max=0; //현재 가장 큰 수
System.out.println("양수 5개를 입력하세요.");
for(int i=0;i<5;i++) {
intArray[i]=scanner.nextInt(); //입력 받은 정수를 배열에 저장
if(intArray[i]>max) //비교하여 최댓값 비교
max=intArray[i]; //최댓값 배열에 저장
}
System.out.print("가장 큰 수는 "+max+"입니다.");
scanner.close();
}
}
//출력결과
양수 5개를 입력하세요.
1 39 78 100 99
가장 큰 수는 100입니다.
예제 3-8 : 배열의 length필드 활용
문제: 배열의 length 필드를 이용하여 배열 크기만큼 정수를 입력 받고 평균을 출력하라.
package chap03;
//예제 3-8
import java.util.Scanner;
public class ArrayLength {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("5개의 정수를 입력하세요.");
int intArray[]=new int[5]; //배열 선언과 동시에 생성
double sum=0;
for(int i=0;i<intArray.length;i++)
intArray[i]=scanner.nextInt(); //키보드에서 입력받은 정수 저장
for(int i=0; i<intArray.length;i++)
sum+=intArray[i]; //배열에 저장된 정수 값을 더하기
System.out.print("평균은 "+sum/intArray.length);
scanner.close();
}
}
//출력결과
5개의 정수를 입력하세요.
2 3 4 5 9
평균은 4.6
예제 3-9 : for-each문 활용
문제: for-each문을 활용하여 int [] 배열의 합을 구하고, String[] 배열의 문자열을 출력하는 사례를 보인다.
package chap03;
//예제 3-9
public class foreachEx {
public static void main(String[] args) {
int[] n= {1,2,3,4,5};
int sum=0;
for(int k:n) {
System.out.print(k+" ");
sum+=k;
}
System.out.println("합은 "+sum);
String f[]= {"사과","배","바나나","체리","딸기","포도"};
for(String s:f)//s는 f[0], f[1], ..., f[5]로 반복
System.out.print(s + " ");
}
}
//출력결과
1 2 3 4 5 합은 15
사과 배 바나나 체리 딸기 포도
예제 3-10 : 2차원 배열 생성 및 활용하기
문제: 2차원 배열에 학년별로 1, 2학기 성적을 저장하고, 4년 전체 평점 평균을 출력하라.
package chap03;
public class ScoreAverage {
public static void main(String[] args) {
double score[][] = {
{3.3,3.4}, //1학년 1,2학기 평점
{3.5,3.6}, //2학년 ''
{3.7,4.0}, //3학년 ''
{4.1,4.2} };//4학년 ''
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;
int m=score[0].length;
System.out.println("4년 전체 평점 평균은 " + sum/(n*m));
}
}
//출력결과
4년 전체 평점 평균은 3.725
예제 3-11 : 배열 리턴
문제: 일차원 정수 배열을 생성하여 리턴하는 makeArray()를 작성하고, 이 메소드로부터 배열을 전달받는 프로그램을 작성하라.
package chap03;
public class ReturnArray {
static int[] makeArray() {
int temp[] = new int[4];
for(int i=0; i< temp.length;i++)
temp[i]=i;
return temp;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int intArray[];
intArray=makeArray();
for(int i=0; i<intArray.length;i++)
System.out.print(intArray[i]+" ");
}
}
//출력결과
0 1 2 3
예제 3-12 : 0으로 나누기 시 예외 발생으로 응용프로그램이 강제 종료되는 경우
문제: 두정수를 입력받아 나눗셈을 하고 몫을 구하는 프로그램 코드이다 . 사용자가 나누는 수에 0 을 입력하면 자바 플랫폼에 의해 예외가 발생하여 프로그램이 강제 종료된다.
package chap03;
import java.util.Scanner;
public class DivideByZero {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int dividend;//나뉨수
int divisor;//나눗수
System.out.print("나뉨수를 입력하시오:");
dividend=scanner.nextInt();
System.out.println("나눗수를 입력하시오:");
divisor=scanner.nextInt();//나눗수 입력
System.out.println(dividend+"를"+divisor+"로 나누면 몫은 "
+dividend/divisor+"입니다.");
}
}
//출력결과
나뉨수를 입력하시오:100
나눗수를 입력하시오:0
Exception in thread "main" java.lang.ArithmeticException : / by zero
at DivideByZero.main (DivideByZero.java:13)
예제 3-13 : 0으로 나누는 예외에 대처하는 try-catch블록 만들기
문제:try-catch-finally 블록을 이용하여 예제 3-12를 수정하여, 저우를 0으로 나누는 경우에 "0으로 나눌 수 없습니다!"를 출력하는 프로그램을 작성하라.
package chap03;
import java.util.Scanner;
public class DivideByZerohandling {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int dividend;
int divisor;
System.out.print("나뉨수를 입력하시오:");
dividend=scanner.nextInt();
System.out.println("나눗수를 입력하시오: ");
divisor=scanner.nextInt();
try {
System.out.println(dividend+"를"+divisor+"로 나누면 몫은 "+dividend/divisor+"입니다");
}
catch(ArithmeticException e) {
System.out.println("0으로 나눌 수 없습니다.");
}
finally {
scanner.close();
}
}
}
//출력결과
나뉨수를 입력하시오:100
나눗수를 입력하시오:0
0으로 나눌 수 없습니다.
예제 3-14 : 입력오류시 발생하는 예외(InputMismatchException)
문제:Scanner 클래스를 이용하여 3 개의 정수를 입력받아 합을 구하는 프로그램을 작성하라 . 사용자가 정수
가 아닌 문자를 입력할 때 발생하는 InputMismatchException 예외를 처리하여 다시 입력받도록 하라.
package chap03;
import java.util.InputMismatchException;
import java.util.Scanner;
//예제 3-14
public class InputException {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("정수 3개를 입력하세요");
int sum=0, n=0;
for(int i=0;i<3;i++) {
System.out.println(i+">>");
try {
n=scanner.nextInt();
}
catch(InputMismatchException e) {
System.out.println("정수가 아닙니다. 다시 입력하세요!");
scanner.next();
i--;
continue;
}
sum+=n;
}
System.out.println("합은 "+sum);
scanner.close();
}
}
//출력결과
정수 3 개를 입력하세요
0>>5
1>>R
정수가 아닙니다 . 다시 입력하세요
1>>4
2>>6
합은 15
'Language > JAVA' 카테고리의 다른 글
| [JAVA] 명품 자바 에센셜 예제 5장 (0) | 2021.12.20 |
|---|---|
| [JAVA] 명품 자바 에센셜 예제 4장 (0) | 2021.12.18 |
| [JAVA]명품 자바 에센셜 예제 2장 (0) | 2021.12.13 |
| [JAVA]MultipartRequest cannot be resoloved (0) | 2021.12.08 |
| [JAVA]String cannot be resolved to a type (0) | 2021.11.30 |