ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • for문/while문/switch문
    Java 2021. 11. 21. 23:03

     

    < for문, while문 이용>

     

    • 콘솔에서 단을 입력받아 해당하는 단을 출력하라.

       실행
       단=8
       8*2=16
       8*3=24
       .
       .
       8*9=72
    import java.util.Scanner;
    
    public class practice01 {
    	public static void main(String[] args) {
    		Scanner scan = new Scanner(System.in);
    		System.out.print("단=");
    		int num = Integer.parseInt(scan.nextLine());
    		
    		// 1. for문 이용
    		for(int i=2; i<=9; i++) {
    			System.out.printf("%d * %d = %d\n", num, i, num*i);
    		}
    		
    		// 2. while문 이용
    		int i=1;
    		while(true) {
    			i++;
    			System.out.printf("%d*%d=%d\n", num, i, num*i);
    			if(i==9) break;
    		}
    
    	}
    
    }

     

    • 홀수에 해당하는 단만 출력
    public class practice01 {
    	public static void main(String[] args) {
    		Scanner scan = new Scanner(System.in);
    		System.out.print("단=");
    		int num = Integer.parseInt(scan.nextLine());
    		
    		// 1. for문 이용
    		for(int i=1; i<=9; i+=2) {
    			System.out.printf("%d * %d = %d\n", num, i, num*i);
    		}
    		
    		// 2. while문 이용
    		int i=0;
    		while(true) {
    			i++;
    			if(i%2==0) continue;  // i가 짝수이면 print 넘어가지말고 i++ 실행
    			if(i==9) break;
    			System.out.printf("%d*%d=%d\n", num, i, num*i);
    			
    		}
    
    	}
    
    }

     

    <이중for문>

     

    •  구구단 출력

    public class practice02 {
    
    	public static void main(String[] args) {
    		for(int i=1; i<10; i++) {
    			for(int j=2; j<10; j++) {
    				System.out.print(j+"x"+i+"="+i*j+"\t");
    			}
    			System.out.println();
    		}		
    	}
    }

     

    • 구구단 출력2

     

    public class practice02 {
    
    	public static void main(String[] args) {
    
    		// 1~3 -- 4~6 -- 7~9 
    		for(int i=1; i<10; i+=3) {
    			// 단 출력
    			for(int head=i; head<i+3; head++) {
    				System.out.print("="+head+"단=\t");
    			}
    			System.out.println();
    		
    			for(int j=2; j<9; j++) {
    				for(int k=i; k<i+3; k++) {
    					System.out.print(k+"x"+j+"="+k*j+"\t");
    				}
    				System.out.println();
    				
    			}System.out.println();
    		}

     

    •  별탑 출력 

    public class practice01 {
    
    	public static void main(String[] args) {
    		
    		for(int i=1; i<=9; i+=2) {
    			// 공백 -> 4,3,2,1,0
    			for(int k=1; k<=(9-i)/2 ;k++) {
    				System.out.print(" ");
    			}						
    			
    			// 별표 -> 1개,3개,5개,7개,9개
    			for(int j=1; j<=i; j++) {
    				System.out.print("*");
    			}
    			System.out.println();
    		}	
    	
    	}

     

     

     

    <출력>

    12345

    12345

    12345

    12345

    12345

     

    public class practice03 {
    	public static void main(String[] args) {
    		// for문활용
    		for(int i=1; i<6; i++) {
    			// 5번 반복
    			for(int j=1; j<6; j++) {
    				System.out.print(j);
    			}System.out.println();
    		}
    		
    		// while문 활용
    		int i=1;
    		while(i<=5) {
    			int k=1;
    			while(k<=5) {
    				System.out.print(k);
    				k++;
    			}System.out.println();
    			i++;
    		}
    		
    	}

     

    •  1~100까지 값 중 5를 제외하고 출력
    public class practice03 {
    	public static void main(String[] args) {
    		// for문활용
    		for(int i=1; i<=100; i++) {
    			if(i%5!=0) {
    				System.out.println(i);
    			}
    		}
    		
    		// while문 활용
    		int i=0;
    		while(i<100) {
    			if(i%5==0) {
    				i++;
    				continue;
    			}
    			System.out.println(i);
    			i++;
    		}
    		
    	}
    
    }

     

    • 콘솔에서 정수를 입력받아 입력받은 값까지의 합, 홀수 합, 짝수 합을 구하라
    public class WhileEx {
    
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		System.out.print("정수입력=");
    		int num = sc.nextInt();
    		
    		int i=0;
    		
    		// 합
    		int sum=0; int sum2=0; int sum3=0;
    		
    		while(i<num) {
    			sum+= ++i;  // 전체 합
    			if(i%2==0) {
    				sum2+=i;  // 짝수 합
    			}else {
    				sum3+=i;   // 홀수 합
    			}
    			
    		} 
    		System.out.println("1~"+num+"까지의 합은 "+sum);
    		System.out.println("1~"+num+"까지의 홀수의 합은 "+sum2);
    		System.out.println("1~"+num+"까지의 홀수의 합은 "+sum3);
    
    	}
    
    }

     

    <if문/switch문>

    • 성적산출

    콘솔에서 국어,영어,수학 점수를 입력받아 총점, 평균, 학점을 구하라.

     

     학점기준
     90~100 A
     80~89  B
     70~79  C
     60~69  D
     0~59   F
     
     실행
     국어=80
     영어=80
     수학=80
     총점=240
     평균=80.0
     학점=B
     
     ** 주의점: 입력은 정수이나 평균은 실수임

    import java.util.Scanner;
    
    public class SungJuk {
    
    	public static void main(String[] args) {
    	
    		Scanner scan = new Scanner(System.in);
    		System.out.print("국어=");
    		int kor = scan.nextInt();
    		
    		System.out.print("수학=");
    		int math = scan.nextInt();
    		
    		System.out.print("영어=");
    		int eng = scan.nextInt();
    		
    		System.out.println("총점="+(kor+eng+math));
    		
    		double avg = (double)(kor + math + eng)/3;
    		System.out.println("평균="+avg);
    		
    		
    		// if문
    		String grade = "F";
    
    		if (avg>=90) {
    			grade = "A";
    			
    		}else if (avg>=80) {
    			grade = "B";
    			
    		}else if (avg>=70) {
    			grade = "C";
    
    		}else if (avg>=60) {
    			grade = "D";
    		}
    		
    		System.out.print("성적=" + grade);
    
    		
    		// switch문으로 구하기
    		switch((int)avg/10) {
    		case 10:
    		case 9:
    			grade = "A";
    			break;
    		case 8:
    			grade = "B";
    			break;
    		case 7:
    			grade = "C";
    			break;
    		case 6:
    			grade = "D";
    			break;
    		default:
    			grade = "F";
    		}
    		System.out.print("성적=" + grade);
    		}
    	
    	}

     

    • 화폐수 구하기

    금액을 입력받아 화폐의 수를 출력

    import java.util.Scanner;
    
    public class MoneyCount2 {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("금액을 입력하세요?=");
    		int money = sc.nextInt();
    		
    		int div = 5;
    		int won = 50000;
    
    		for (; money > 0;) {
    			int cnt = money / won;
    			System.out.println(won + "->" + cnt);
    			if (won >= 1000) {
    				System.out.print("장");
    			} else {
    				System.out.print("개");
    			}
    
    			money -= cnt * won;
    			// 다음화폐만들기
    			won = won / div;
    
    			if (div == 5)
    				div = 2;
    			else
    				div = 5;
    
    		}
    	
    
    	}
    
    }

    ** 배열을 이용

    public class InsertSort {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("금액을 입력하시오:");
    		int money = sc.nextInt();
    
    		// 화폐단위: 50000, 10000, 5000, 1000, 500, 100, 50, 10, 5, 1
    		// 나누기 5, 2, 5, 2 반복..
    
    		int danwi[] = {50000, 10000, 5000, 1000, 500, 100, 50, 10, 5, 1};
    
    		for(int i=0; i<danwi.length; i++) {
    			int cnt = money / danwi[i];  // 장, 개
    
    			if(cnt>0) {
    				System.out.print(danwi[i]+"원="+cnt);
    				if (danwi[i]>=1000) {
    					System.out.print("장");
    				}else {
    					System.out.print("개");
    				}
    				System.out.println();					
    			}
    			money -= cnt*danwi[i];			
    		}
    
    	}
    }

     

     

     

     

    <난이도up 예제>

     

    - 달력만들기

    import java.util.Calendar;
    import java.util.Scanner;
    
    public class practice05 {
    	
    	public static void main(String[] args) {
    		
    		do {
    			Scanner scan = new Scanner(System.in);
    			
    			// 년월입력  --> 1일의 요일 구하기 --> 그만큼 공백 생성
    			System.out.print("년=");
    			int year = Integer.parseInt(scan.nextLine());
    			System.out.print("월=");
    			int month = Integer.parseInt(scan.nextLine());
    			
    			Calendar date = Calendar.getInstance(); //오늘
    			date.set(year, month-1, 1); // 입력받은 년월 1일로 변경
    			int week = date.get(Calendar.DAY_OF_WEEK); //요일
    			
    			//달의 1일 요일까지 구했으면 앞에 공백 몇개 찍을 지 알수 있음
    			//이제 달이 몇일까지 있는지 구하면 됨
    			
    			
    			// 30: 4,6,9,11월
    			// 31: 1,3,5,7,8,10,12월
    			// 28or29: 2월
    			
    			int lastDay = 31; //초기값으로 설정
    			switch(month) {
    			case 4:
    			case 6:
    			case 9:
    			case 11: lastDay = 30; break;
    			case 2:
    				// 윤년인 경우와 아닌 경우
    				if(year%4==0 && year%100!=0 || year%400==0) {
    					lastDay = 29;
    				}else {
    					lastDay = 28;
    				}
    			}
    			
    			// 달력 프린트
    			System.out.println("\t\t"+year+"년 "+month+"월");
    			System.out.println("일\t월\t화\t수\t목\t금\t토");
    			
    			// 공백출력
    			for(int space=1; space<week; space++) {
    				System.out.print(" " + "\t");
    			}
    			
    			// 날짜 출력
    			for(int day=1; day<=lastDay; day++) {
    				System.out.print(day+"\t");  // 옆으로만 쭉쭉 나열하게 됨
    				if((day+week-1)%7==0) {
    					System.out.println();    // 7개마다 한줄씩 내려라
    				}
    			}
    			System.out.println();
    			
    			// 계속여부 확인
    			System.out.println("계속하시겠습니까? ");
    			String res = scan.nextLine();
    			if(!res.equals("y")) {
    				break;
    			}
    			
    		} while(true);
    		
    	}
    }

     

     

    - 알파벳 다이아몬드만들기

    public class azDiamond {
    
    	public static void main(String[] args) {
    		// 홀수가 아니면 홀수로 변환
    		Scanner sc = new Scanner(System.in);
    		System.out.print("임의의 홀수 입력:");
    		int max = sc.nextInt();
    		max = (max%2==0)? max+1: max;
    		char txt = 'A';
    		
    		int step = 2;
    		for(int i=1; i>=1; i+=step) {
    			// 공백
    			for(int space=1; space<=(max-i)/2; space++) {
    				System.out.print(" ");
    			}
    			// 문자
    			for(int cnt=1; cnt<=i; cnt++) {
    				System.out.print(txt++);
    				if(txt>'Z') {
    					txt = 'A';
    				}
    			}
    			System.out.println();
    			if(max<=i) step-=2;
    		}
    
    	}
    
    }

     

     

    'Java' 카테고리의 다른 글

    객체지향 퀴즈  (0) 2021.11.24
    객체지향프로그래밍 (자바의정석)  (0) 2021.11.22
    배열  (0) 2021.11.22
    정렬알고리즘  (0) 2021.11.22
    do-while문  (0) 2021.11.22

    댓글

Designed by Tistory.