JAVA 4일차

MOZZI KIM·2022년 10월 27일
0

JAVA

목록 보기
4/21
post-thumbnail

1. 조건문의 종류 3가지

- if문

: 조건을 확인하고 true면 {}중괄호 안의 내용을 실행하고, 아니면 빠져나간다.

if(n1 < n2) { // if(boolean 타입을 받는게 와야한다.)
     System.out.println("n1 > n2 is true"); //true면 실행, false면 실행안하고 빠져나감.
}
 
if(n1 < n2) System.out.println("n1 > n2 is true");

//if문에 속한 문장이 하나일 경우 중괄호 생략 가능하지만 그냥 괄호쓰는 것이 좋다.

- if - else 문

: if문의 조건이 false일 경우 else로 가서 {}중괄호 안의 내용을 실행한다.

반드시 if나 else 둘중하나는 실행하게 되어있다.

if(n1 == n2) {

     System.out.println("n1 == n2 is true"); //true면 실행 후 조건문을 빠져나감

}else {

     System.out.println("n1 == n2 is false"); //false면 실행 후 조건문을 빠져나감

}

//if문과 마찬가지로 if절 또는 else 절에 속한 문장이 하나일 경우 중괄호 생략 가능함

 

- if ~ else if ~ else 문

: if문이 false이고, 검사하고 싶은 조건이 많은 경우에는 else if를 추가로 여러번 사용하여 조건을 검사할 수 있다. 모든게 false인 경우 if - else문과 마찬가지로 else로 넘어간다.

public class Hello {
  public static void main(String[] args) {
    int num = 120;
  	if (num <0){
       System.out.println("0미만");
    }else if(num <100){
       System.out.println("0이상 100미만");
	}else{
      System.out.println("100이상"); //모든 if와 else if 문이 false면 else를 실행
    }
  }
}
//결과 : 100이상

2. 아래 프로그램을 짜시오.

  • 국어:80 수학:80 영어:60
    점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오.
int kor = 80;
int math = 80;
int eng = 60;
int total = kor + math + eng;
double avg = total/3.0;

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 {
	System.out.println("성적은 '가' 입니다.");
}

3. 아래를 if 구문을 활용하여를 사용하여 프로그래밍 하시오.

  • 80, 33 ,55 = 최대값을 출력하시오.
int num1 = 80;
int num2 =1000;
int num3=100;
int max;

if( (num1 > num2) && (num1 >num3) ) {
	max = num1;
}else if( (num2 > num3) && (num2 >num1) ) {
	max = num2;
}else {
	max = num3;
}
System.out.println(max);

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

- switch문
: 조건이 맞는 case 를 찾아가서 break; 까지 실행 후 조건문을 빠져나간다. 만일 조건에 맞는 게 없을 경우 default를 실행한다.

  • switch(n) 에서 n에는 기본적으로 정수가 온다. (실수는 오면 안된다!)

5. 프로그래밍 하시오.

  • int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오.
int num = -10;

if(num < 0) {
	num = - num;
}
System.out.println("절댓값 : " + num);

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

- while 문의 형식

초기값;
while(조건식){

	반복실행시킬 명령어()
    증감식
}

- do while 문의 형식

초기값;

do{

반복 수행할 명령어();
증감식;

}while(조건식);

- while과 do~while의 차이
while문과 do~while문은 사용하는 방법이 유사.
둘의 차이점은 만약에 처음부터 조건을 만족하지 않은 상황이라면 while문은 반복문을 한번도 실행하지 않을 수 있지만, 조건을 나중에 비교하는 do~while은 어찌되었던 do문을 적어도 한번은 실행한다.

int i=100;
while(i<=3){
	System.out.println("hello");
    i++;
}

위의 코드는 처음부터 조건을 만족하지 않은 값으로 초기화 되어 있으므로 반복문을 한번도 동작하지 않는다.

그러나 do - while문은

int i=100;
do{
	System.out.println("hello");
	i++;
}while(i<=3);

위의 코드는 처음부터 조건을 만족하지 않은 값으로 초기화 되어 있으나 조건을 나중에 가서 판별하므로 어찌 되었던 do문을 한번은 실행.


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



8. 9단을 출력하는 프로그램을 만드시오.(while 문 사용할것)

int i=1; //첫 번째 반복문의 변수 초기화

     while(i<10) { //'단' 출력을 위한 첫 번째 반복문

          System.out.println("\n"+i+"단");

          int j=1; //중첩 반복문의 변수 초기화

          while(j<10) { //1~9 곱을 위한 중첩된 반복문

              System.out.println(i+"x"+j+"="+i * j);

              j++; //중첩 반복문의 변수 증감

        }

        i++; //첫 번째 반복문의 변수 증감

      }

9. 1부터 100까지의 합을 구하시오.

	int sum = 0;
	for(int i = 1; i<=100; i++){
    	sum += i;
    }
    System.out.println("1 ~ 100까지의 합 : " + sum);

10. 1부터 100까지의 홀수들의 합을 구하시오.

int sum = 0;
for(int i = 1; i <= 100; i++){
	if(i % 2 != 0){
    	sum += i;
    }
}
System.out.println("1 ~ 100까지의 홀수 합 : " + sum);

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

중간에 break 만나면 true면 조건문을 탈출한다.
중간에 continue 만나면 true면 다시 조건 검사로 돌아간다.


12. 아래를 프로그래밍 하시오.

  • 1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는?
int num = 1;
boolean search = false;
		
//처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문
while(num<100) {
	if(((num % 5) == 0) && ((num % 7) == 0)){
		search = true;
		break;
	}
	num ++;
}

	if(search)
    	System.out.println("찾는 정수 : " + num);
	else
		System.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");

13. 1과 1000 사이의 숫자중 2의 배수 이자 3의 배수인 수는 모두 몇개인가?

		int num = 0;
		int count = 0;
		while ((num++)<100) {
			if(((num % 5) != 0 || (num % 7) != 0))
				continue; //5,7의 배수가 아니라면 나머지 건너뛰고 위로 이동
			count++; //5,7의 배수인 경우 실행
			System.out.println(num); //5,7의 배수인 겨우만 실행
		}
		System.out.println("1~100까지 숫자 중 5의 배수이자 7의 배수인 숫자 갯수 : " + count);

14. 화폐매수 구하기?

  • 126500의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라.
    예) int 126500;
    오만원 : 2장
    만원: 2장
    오천원짜리 :1장
    천원짜리: 1
    오백원짜리 1개
    백원짜리 0개

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

int a= 90, b=70, c=100;
int max;

max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);

System.out.println("max is "+ max);

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

for( ; ; ){...} //for 문의 무한루프
 
while(true){...} //while문의 무한루프
 
do{	//do - while문의 무한루프
}while(ture)

17. 구구단 출력을 하시오.

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

18. 짝수단만 찍으시오.

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

19. 3의 배수인 단만 출력하시오.(3.6.9단만 출력)

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

20. 아래의 Star를 찍으시오

*****
*****
*****
*****
*****
for(int i = 0; i < 5; i++){
	for(int j = 0; j < 5; j++){
    	System.out.print("*");
    }
    System.out.println();
}

21.아래의 Star를 찍으시오

*
**
***
****
*****
for(int i = 1; i <= 5; i++){
	for(int j = 1; j <= i; j++){
    	System.out.print("*");
    }
    System.out.println();
}
profile
코린이

0개의 댓글