본문 바로가기
JAVA개념 시작하기

JAVA 4일차 - 실행 흐름과 컨트롤

by 가므로 2022. 10. 27.
1. 조건문의 3가지 종류를 나열하고 설명하시오.

조건문의 3가지 종류 (출처 : CloudStudying)

조건문은 if, else if, else 총 3가지로

if문의 동작 원리

if는 조건식이 참이면 if 안의 내용을 출력하고 조건이 거짓이라면 출력하지 말라는 뜻이다.

else 문의 동작 원리

else는 조건이 A or B를 수행할 때 else문을 사용한다. (if문의 조건이 거짓일 경우 출력해주는 값)

else if문의 동작 원리

else if는 if문의 결과 값이 3가지 형식으로 나눠질 때 사용한다.

예문)

90점 이상은 A를 (if)

80점 이상은 B를 (else if)

그 이외는 C학점을 (else)

 

2. 국어:80 수학:80 영어:60  // 총점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오. (if문, else if문 활용)
// 파일이름 : Assignment1_if
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :	국어:80 수학:80 영어:60        
//		총점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오.

public class Assignment1_if {

	public static void main(String[] args) {

		int math = 80;
		int english = 80;
		int korea = 80;
		int sum = math + english + korea;
		int avg = sum / 3;

		System.out.println("당신의 총점은 " + sum + "이고" + " 당신의 평균은 " + avg + "입니다");
		if (avg > 90) {
			System.out.println(" 당신은 수입니다.");

		} else if (avg > 80) {
			System.out.println(" 당신은 우입니다.");

		} else if (avg > 70) {
			System.out.println(" 당신은 미입니다.");

		} else if (avg > 60) {
			System.out.println(" 당신은 양입니다.");

		} else if (avg > 50) {
			System.out.println(" 당신은 가입니다.");

		}

	}

}

// 결과
// 당신의 총점은 240이고 당신의 평균은 80입니다
// 당신은 미입니다.

 

3.-80, 33 ,55 = 최대값을 출력하시오. (if, else if, else문 활용)
// 파일이름 : Assignment1_if2
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :-80, 33 ,55 = 최대값을 출력하시오.

public class Assignment1_if2 {

	public static void main(String[] args) {
		int a = -80;
		int b = 33;
		int c = 55;
		int max;

		if (a >= b && a >= c) {
			max = a;
		} else if (b >= a && b >= c) {
			max = b;
		} else {
			max = c;
		}
		System.out.println("최댓값은 " + max + "입니다.");
	}
}
// 결과
// 최댓값은 55입니다.

 

4.switch 문에서 '걸어서 하늘까지' 를 설명하시오.

 

5.- int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오. 
// 파일이름 : Assignment1_absolute
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :	.- int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오.
public class Assignment1_absolute {

	public static void main(String[] args) {
		int num = -10;
		
		
		System.out.println("설정 정수값 : " + num);
		System.out.println("절대값 출력 : " + Math.abs(num));
	}
}

// 결과
// 설정 정수값 : -10
// 절대값 출력 : 10

 

6.반복문에서 while 문과 do while 문의 차이는?

반복문의 알고리즘

while은 조건이 맞다면 반복문을 바로 실행하는 반면

do while은 조건문 앞에 실행할 내용이 있다면 한번 실행하고 조건문에 들어간다는 뜻이다.

 7.for 문에서 for 문이 실행되는 순서를 설명하시오.

for문 실행순서

for문은 초기화식을 먼저 진행 후 조건식을 거쳐서 조건식이 맞다면 실행문장을 진행 후 증감식을 처리한다.

만약 조건식이 거짓이라면 for문을 종료한다.

 

8. 구구단을 출력하는 프로그램을 만드시오.(while 문 사용할것)
// 파일이름 : While_assignment1_x.java
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 구구단을 출력하는 프로그램을 만드시오.(이중 while문)

public class While_assignment1_x {

	public static void main(String[] args) {
		int i = 1;
		int j = 1;

		while (i <= 9) {
			while (j <= 9) {
				System.out.println(i + "*" + j + "은" + (i * j) + "이다.");
				j++;
			}
			j = 1; //초기화 값을 넣기.
			i++;
		}

	}
}
//  결과
// 1*1은1이다.
// 1*2은2이다. ~반복
// 2*1은2이다. ~반복

조건을 2번 넣을 경우 while같은 경우에는 이중 while문을 사용하면 된다.

 

9.1부터 100까지의 합을 구하시오. (for문 활용)
// 파일이름 : While_assignment2.java
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 1부터 100까지의 합을 구하시오.

public class While_assignment2 {

	public static void main(String[] args) {
		int sum = 0;
		
		for (int i=1; i <= 100; i++) {
			sum+=i;
		}
		System.out.println("1부터 100까지의 합 = " + sum);
	}
}
// 결과
// 1부터 100까지의 합 = 5050

for문 안에서 sysout을 선언할 경우 문자열을 반복하니 수식 그대로 적는다.

그리고 for문에서 나와서 sum을 선언해준다.

 

10.1부터 100까지의 홀수들의 합을 구하시오. (for, if문 활용)
// 파일이름 : for_assignment21.java
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 1부터 100까지의 합을 구하시오. (홀수)

public class for_assignment21 {

	public static void main(String[] args) {
		int sum = 0;

		for (int i = 1; i <= 100; i++) {
			if (i % 2 == 1) {
				sum += i;
			}
		}
		System.out.println("1부터 100까지의 합 = " + sum);
	}
}
// 결과
// 1부터 100까지의 홀수의 합 = 2500

if라는 조건문을 밖에다 쓰는게 아니라 1~100을 구하는 규칙 안에

조건을 부여해주는 것이기에 안에 넣어준다.

 

11.반복문에서의 break 와 continue 를 설명하시오.

반복문의 알고리즘.

break는 반복문을 멈추라는 뜻이고 continue는 계속 진행하라는 뜻이다.

 

12. - 1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는? (for문, if문, break 활용)
// 파일이름 : for_assignment21.java
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는?

public class for_assignment21 {

	public static void main(String[] args) {


			for (int i = 1; i <= 1000; i++) {
				if ((i % 3 == 0) && (i % 5 == 0)) {
					System.out.print(i + " ");
					break;
				}
			}
		
		
	}
}
// 결과
// 15​

 첫번째 수를 구하기 위해서는 한번만 실행하게 break로 멈춰줘야 한다.

 

13. - 1과 1000 사이의 숫자중 2의 배수 이자 3의 배수인 수는 모두 몇개인가? (for, if문)
// 파일이름 : for_assignment21.java
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 1과 1000 사이의 숫자중 2의 배수이자 3의 배수인 수는 모두 몇개인가?

public class for_assignment21 {

	public static void main(String[] args) {

		int count=0;
			for (int i = 1; i <= 1000; i++) {
				if ((i % 2 == 0) && (i % 3 == 0)) {
					count++;
				}
				
			}
			System.out.println(count);
		
	}
}
// 결과
// 166

카운트를 조건부 안에서 세주고 조건부에 나와서 sysout으로 표현한다

 

14.화폐매수 구하기? (if문)
// 파일이름 : Assignment1_for2
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :	126500 의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라.

public class Assignment1_for2 {

	public static void main(String[] args) {
		int balance = 126500;
		int count_5m = 0;
		int count_1m = 0;
		int count_5s = 0;
		int count_1s = 0;
		int count_5 = 0;
		int count_1 = 0;
		
		if (balance >= 50000) {
			count_5m = balance/50000;
			balance -= count_5m * 50000; // 이게 없으면 차감 처리가 안됨.
		}
		if (balance >= 10000) {
			count_1m = balance/10000;
			balance -= count_1m * 10000;
		}
		if (balance >= 5000) {
			count_5s = balance/5000;
			balance -= count_5s * 5000;
		}
		if (balance >= 1000) {
			count_1s = balance/1000;
			balance -= count_1s * 1000;
		}
		if (balance >= 500) {
			count_5 = balance/500;
			balance -= count_5 * 500;
		}
		if (balance >= 100) {
			count_1 = balance/100;
			balance -= count_1 * 100;
		}
		
		System.out.println("오만원 : "+ count_5m + " 장");
		System.out.println("만원 : "+ count_1m + " 장");
		System.out.println("오천원 : "+ count_5s + " 장");
		System.out.println("1천원 : "+ count_1s + " 장");
		System.out.println("5벡원 : "+ count_5 + " 개");
		System.out.println("1백원 : "+ count_1 + " 개");
		

	}
	
}

// 결과 
// 오만원 : 2 장
// 만원 : 2 장
// 오천원 : 1 장
// 1천원 : 1 장
// 5벡원 : 1 개
// 1백원 : 0 개

해당 원리는 조건문인 if문을 활용해서 그 전 데이터가 누적되는 원리를 이용한 것이다.

일단 총 금액, 조건별로 count 해줄 것들을 int화 시켜준다.

그 후 조건문에서는 총값이 5만원보다 높다면 count 개수를 세주고 

* 개수 공식 :  총값 / 조건부(50000원)

 

데이터가 누적될 수 있도록 차감 수식을 넣어준다.

그 후 반복후 조건문을 나와 개수 표현문을 넣어준다.

 

15. 90, 70 100  세 수중  max (삼항연산자를) 활용하여 값을 구하시오.

삼항 연산자

// 파일이름 : Assignment1_if3
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :	90, 70 100  세 수중  max (삼항연산자를) 활용하여 값을 구하시오.

public class Assignment1_if3 {

	public static void main(String[] args) {
		int num1 = 90;
		int num2 = 70;
		int num3 = 100;
		int max = 0;
		
		max = ( num1 > num2 ? num1 : num2) > num3?
		(num1>num2 ? num1 : num2):num3 ;
		
		System.out.println(max);
		

	}
	
}

// 결과 
// 100

조건 ? : (num1 > num2 ? num1 : num2) > num3 ?

참일 때 : (num1>num2 ? num1 : num2) :

거짓일 때 : num3

 

삼항 연산자를 이용한다는 것은 참과 거짓 중 어느 것을 할당한지 표현하는 식으로

삼항 연산자가 2번 있는 이유는 num1, num2에 대한 참과 거짓이 필요하기 때문에 

이런식으로 진행한 것이다. 

 

16.반복문 3가지의 무한루프 만드는 방법은?

반복문 3가지의 무한루프 (출처 : 사진 참조)

반복문에 조건에 ;;, true를 넣어준다.

do while의 경우에도 do while(true)로 실시한다.

 

17.구구단 출력을 하시오. (2중 for문)
// 파일이름 : Assignment1_for2
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :	구구단을 출력하는 과정

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

// 결과
// 1x1=1
// 1x2=2 .. 2x1=2

 

18.짝수단만 찍으시오. (for,if,for문)
// 파일이름 : Assignment1_for_if1
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 :	구구단 2의 배수만을 출력하는 과정

public class Assignment1_for_if1 {

	public static void main(String[] args) {
		for (int i = 2; i < 10; i++) {
			if (i % 2 != 0)
				continue;

			for (int j = 1; j < 10; j++) {
				System.out.println(i + "x" + j + "=" + i * j);
			}
			System.out.println();
		}
	}

}

// 결과
// 2x1=2
// 2x2=4 .. 4x1=4

 

19.3의 배수인 단만 출력하시오.(3.6.9단만 출력) (for,if,for문)
// 파일이름 : For1_assignment1.java
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 3.6.9단만 출력
public class For1_assignment1 {

    public static void main(String[] args) {

    	
    	for (int i = 1; i <= 9; i++) {
    		if ((i % 3) != 0)
    			continue;
    	for (int j = 1; j <= 9; j++) {
    		
    		
    		System.out.println(i +"*"+j+"="+(i*j));
    		
    		
    	System.out.println();
		}
    		
    }
   }
}

// 결과 
// 3*1=3 .. 3*2=6
// 6*1=6 .. 6*2=12
// 9*1=9 .. 9*2=18

 

20. 5*5 별을 출력하는 프로그램을 만드시오. (2중 포문)
// 파일이름 : Assignment2_for1
// 작성자 : 박지인
// 작성일 : 2022년 10월 27일
// 목 적 : 5*5 별을 출력하는 프로그램을 만드시오.

public class Assignment2_for1 {

	public static void main(String[] args) {
		System.out.println("<1>");
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= 5; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

// 결과
//<1>
//*****
//*****

 

21. 정방향 별 계단을 출력하는 프로그램을 만드시오. (2중 포문)
// 파일이름 : Assignment2_for1
// 작성자 : 박지인
// 작성일 : 2022년 10월 28일
// 목 적 : 정방향 별 계단을 출력하는 프로그램을 만드시오.

public class Assignment2_for1 {

	public static void main(String[] args) {
		System.out.println("<2>");
		for (int i = 1; i <= 5; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}

	}
}

// 결과
//<2>
//*
//**

 

* 참고 사이트
 

06 조건문 | CloudStudying

# 조건문 상황에 따라 동작을 다르게 하고 싶다면? ## 실생활 조건문들 --- 오늘은 뭘 먹지? 오늘은 어떤 옷을 입지? 등등.. 특정 상황에 따라, 다른 행동을 취해야 할 때가 있다. 프로그래밍 또한

cloudstudying.kr