본문 바로가기
수업(국비지원)/Java

[Java] chap4 : 제어문(조건문, 반복문) - Exam1-8

by byeolsub 2023. 4. 14.

 📌 If 문 Exam1

package chap4;
import java.util.Scanner;
/*
 * 숫자를 입력 받아서 
 *  1. 양수,음수,영을 출력
 *  2. 짝수,홀수 여부 출력
 */
public class Exam1 {
	public static void main(String[] args) {
		System.out.println("숫자 입력");
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		if (num>0) {
			System.out.println("양수");
		} else if (num<0) {
			System.out.println("음수");
		} else {
			System.out.println("영");
		}

		if (num%2==0) {
			System.out.println("짝수");
		} else {
			System.out.println("홀수");
		}
	}

}

📌 switch 구문 Exam2

package chap4;
import java.util.Scanner;

/*
 * 점수를 입력받아서
 * 60이상이면 합격,60미만이면 불합격을 출력하도록
 * switch 구문으로 작성하기
 */
public class Exam2 {
	public static void main(String[] args) {
		System.out.println("점수 입력");
		Scanner scan = new Scanner(System.in);
		int score = scan.nextInt();
		String result;
		switch(score/10) {
		case 10 :
		case 9 :
		case 8 :
		case 7 :	
		case 6 : result="합격"; break;
		default : result="불합격";
		 }
		System.out.println(result);
		}
	}

📌 반복문(for,while,do while) Exam3

package chap4;

/*
 * 1부터 100까지의 짝수의 합 구하기
 * for
 * while
 * do while
 */
public class Exam3 {
	public static void main(String[] args) {
		System.out.println("for구문");
		int sum = 0, i = 0;
		for (i = 1; i <= 100; i++) {
			if (i % 2 == 0)
				sum += i;
		}
		System.out.println("1~100까지의 합:" + sum);
		System.out.println("--------");
		System.out.println("for구문2");
		sum = 0;
		i = 0;
		for (i = 2; i <= 100; i += 2) {
			sum += i;
		}
		System.out.println("1~100까지의 합:" + sum);
		System.out.println("--------");
		System.out.println("2.while 구문");
		sum = 0;
		i = 0;
		while (i <= 100) {
			if (i % 2 == 0)
				sum += i;
			i++;
		}
		System.out.println("1~100까지의 합:" + sum);
		System.out.println("--------");
		System.out.println("2.while 구문2");
		sum = 0;
		i = 2;
		while (i <= 100) {
			sum += i;
			i += 2;
		}
		System.out.println("1~100까지의 합:" + sum);
		System.out.println("--------");
		System.out.println("3. do while 구문");
		sum = 0;
		i = 0;
		do {
			if (i % 2 == 0)
				sum += i;
			i++;
		} while (i <= 100);
		System.out.println("1~100까지의 합:" + sum);
		System.out.println("--------");
		System.out.println("3. do while 구문2");
		sum = 0;
		i = 2;
		do {
			sum += i;
			i += 2;
		} while (i <= 100);
		System.out.println("1~100까지의 합:" + sum);
	}

}

📌 중첩 반복문 Exam4

package chap4;

import java.util.Scanner;

/*
 * 화면에서 자연수를 입력받아서 각 자리수의 합을 구하기
 * 
 * 자연수를 입력
 * 123 
 * 6
 * 
 * 123 => 123%10 => sum += 3
 *123/10 => 12 %10  => sum += 2
 *12/10 => 1 %10 => sum += 1
 *1/10 =>0 반복종료
 */
public class Exam4 {
	public static void main(String[] args) {
		System.out.println("자연수 입력");
		Scanner scan = new Scanner(System.in);
		int num = scan.nextInt();
		int temp = num;
		int sum =0;
		while(temp>0) {
 			sum += temp%10; temp /= 10;	
		}
		System.out.println(num+"자리수의 합:"+sum);
		
		
	}

}

📌 중첩 반복문 Exam5

package chap4;

import java.util.Scanner;

/*
 *화면에서 숫자형 문자열을 입력받아서 각 자리수의 합을 구하기
 * [결과]
 * 자연수를 입력
 * 123 
 * 6
 * [문제해결]
 * for(int i=0;i<len;i++{
 *   ch = str.charAT(0)
 *   sum += ch - '0'
 * }
 */
public class Exam5 {
	public static void main(String[] args) {
		System.out.println("숫자형 문자를 입력하세요");
		Scanner scan = new Scanner(System.in);
		String str = scan.next(); // 입력받은 문자열을 저장하기 위한 변수 //str: "123"
		int len = str.length(); // 문자열의 길이를 입력 받아 str에 저장 // 문자열의 길이 len : 3
		System.out.println("입력된 문자열의 길이:"+len);
		int sum =0; // 최종 결과값을 저장하기 위한 변수
		for(int i=0;i<len;i++) { // 입력받은 문자열의 길이까지 반복 실행한다는 뜻 //i=0 
			//sum+=1 => sum=sum+('1'-'0')
	        sum += str.charAt(i) -'0' ;// 문자열의 글자를 한글자씩 빼내서 '0'을 빼준 값 //1
		}
		System.out.println(str+"자리수의 합:"+sum);
	  } 
   }

📌 중첩 반복문(println, print) Exam6

package chap4;
/*
 * 구구단 가로로 출력하기
 * \\t 이용하기
 */
public class Exam6 {
	public static void main(String[] args) {
		/*
		 * 블럭{}
		 * 지역변수 : 블럭내부에서 선언된 변수
		 */
		int x = 10; //얘도 지역변수이다. main이라는 메서드 안에 있는
		            // i로 설정하면 오류가 뜸.why? 메인 구문안에서 겹치면 안되기 때문에
		for(int i=2;i<=9;i++) {  // i:10
			//i 지역변수의 사용범위는 이 for구문 내부에서만 이다.
			System.out.print(i+"단"+"\\t");
		}
		System.out.println();
			for(int j=2;j<=9;j++) {
				for(int i=2;i<=9;i++) {
			System.out.print(i+"*"+j+"="+(i*j)+"\\t");
			}
			System.out.println();
			}
	}
}

📌 중첩 반복문 Exam7

package chap4;
/*
 * 1~100까지의 수중 2의 배수도 아니고, 3의 배수도 아닌 수의 합을 구하기
 */
public class Exam7 {
	public static void main(String[] args) {
		int sum=0;
		for(int i=1;i<=100;i++) {
		//	if(i%2!=0 &&i%3!=0)
		//	sum += i;
			if(i%2==0 ||i%3==0) continue;
			sum += i;
		}	
		System.out.println("합계="+sum);	//꺼내어 놓는 이유 :
		                                //    반복문 안에서는 같이 돌아가니까
	}
}

📌 중첩 반복문 Exam8

package chap4;

import java.util.Scanner;

/*
 * 삼각형의 높이를 입력받아서 *로 삼각형 출력하기
 * [결과]
 * 삼각형의 높이
  3
  1.:
  *
  **
  ***
 
  2.:
  ***
  **
  *
 
 3.:
   *
  **
 ***
 
 4.
 ***
  **
   *
   
 */
public class Exam8 {
	public static void main(String[] args) {
		System.out.println("삼각형의 높이");
		Scanner scan = new  Scanner(System.in);
		int h = scan.nextInt();
		System.out.println("1.");
		for(int i=1;i<=h;i++) {
			for(int j=0;j<i;j++) {
			System.out.print("*");
		 }
		System.out.println("");
	  }
		System.out.println("2.");
		for(int i=1;i<=h;i++) {
			for(int j=h;j>=i;j--) {
				System.out.print("*");
			 }
			System.out.println("");
		}
			System.out.println("3.");
			for(int i=h;i>=1;i--) {
				for(int j=1;j<=h;j++) {
					if(j>=i) {
						System.out.print("*");
						    }
					 else {
					System.out.print(" ");
				          }
		           }
				System.out.println("");				
		       }
			System.out.println("4.");
			for(int i=1;i<=h;i++) {
				for(int j=1;j<=h;j++) {
					if(j>=i) {
					System.out.print("*");
					} else {
						System.out.print(" ");
					}
				 }
				System.out.println("");
	     }
			
	  }

    }