java04

ONLY·2022년 10월 27일
0

Java_질의응답

목록 보기
4/14

1. 조건문

1) if

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

if(n1 < n2) { // if(boolean 타입을 받는게 와야한다.)

     System.out.println("n1 > n2 is true"); 
     //true면 실행, false면 실행안하고 빠져나감.
}

2) 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면 실행 후 조건문을 빠져나감
}

3) else if

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를 실행
   }
}

2. 문제01

국어:80 수학:80 영어:60
평균을 출력하고, 평균에 따른 수우미양가를 출력하시오.

public class else_if {
	public static void main (String[] args) {

		int kor = 63;
		int eng = 88;
		int math = 70;

		int sum = kor + eng + math;
		double avg = sum / 3;

		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. 문제02

80, 33 ,55 = 최대값을 출력하시오.

public class Hello {
	public static void main(String[] args) {

		int a= 80, b=33, c=55;
        int max;
        
		max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);
 
 		System.out.println("max is "+ max);
	}
}

4. 문제03

int num = -10 을 할당후 해당 정수에 대한 절대값을 출력

public class Hello {
	public static void main(String[] args) {

		int num = -10;

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

5. while 과 do ~ while

1) while

먼저 조건 검사하고 결과가 true이면 중괄호 영역 실행

초기값
while(반복조건) {
	반복영역
	증감
}

예시

public class Hello {
	public static void main(String[] args) {

		int num = 0;

		while(num <5) {
			System.out.println("I like Java " + num);
        	num++;
		}
	}
}

2) do ~ while

먼저 중괄호 영역 실행, 조건 검사 후 결과가 true이면 반복 결정. 무조건 1번은 실행한다.

초기값
do{
	반복영역
	증감
} while(반복조건);

예시

public class Hello {
	public static void main(String[] args) {

		int num = 0;

		do {
			System.out.println("I like Java " + num);
			num++;
		} while(num<5);
	}
}

3) 차이점

while문은 조건이 안 맞으면 한번도 실행 안할 수 있지만
do while문은 조건이 맞지 않더라도 무조건 한 번은 실행한다.

6. for

1) 기본형태

for(초기값; 반복 조건; 증감);

2) 예시

for(int i = 0; i<3; i++){

	System.out.println("조건에 맞으면 출력");

}

3) 실행순서

변수의 범위는 중괄호 안 for문에서 초기화 구문은 딱 한번만 실행됨

7. 문제04

구구단 출력하기

public class Hello {
	public static void main(String[] args) {

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

     	while(i<10) { 
        	System.out.println("\n"+i+"단");
            int j=1; 
          	while(j<10) { 
            	System.out.println(i+"x"+j+"="+i * j);
              	j++; //중첩 반복문의 변수 증감
          	}
          	i++; //첫 번째 반복문의 변수 증감
        }
   	}
}

8. 문제05

1부터 100까지의 합을 출력

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

        for(num=1; num<=100; num++) {
            sum = sum + num;
       }
        System.out.println("1부터 100까지의 합은: " + sum +"입니다.");
     }
}

9. 문제06

1부터 100까지의 홀수들의 합을 출력

public class Hello {
	public static void main(String[] args) {

    	int num;
     	int sum=0;

     	for(num=1; num<=100; num++) {
           if(num % 2 == 0) {
           sum = sum + num;
       }
   } 
   System.out.println("1부터 100까지 중 홀수의 합은: " + sum +"입니다.");
  }
}

10. break 와 continue

중간에 break를 걸리면 true면 조건문을 탈출한다.

중간에 continue걸리면 true면 다시 조건 검사로 돌아간다.

예시

public class Hello {
    public static void main(String[] args) {

        int num = 1;
        boolean search = false;

        while(num <100) {
            if((num % 5 == 0) && (num % 7 ==0)) {
            search = true;
            break; //while문을 탈출
       		}
       	num++;
		}

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

11. 문제07

1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는?

public class Hello {
	public static void main(String[] args) {

		int num = 1;
		boolean search = false;
		
        while(num<1000) {
			if((num%3==0)&&(num%5==0)) {
				search = true;
				break; //if문 탈출
			}
			num++;
		}
		
        if(search) {
			System.out.println("찾는 정수: " + num);
		}else {
			System.out.println("3의 배수이자 5의 배수인 수를 찾지 못했습니다.");
		}
}

12. 문제08

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

public class Hello {
	public static void main(String[] args) {

		int i =1;
		int count=0;

		while((i++)<1000){
			if((i%2!=0) || (i%3!=0)) { //2배수이거나 3의 배수가 아니면
			continue; //조건문으로 돌아감
		}
		count++;
        //System.out.println(i);
	}
	System.out.println("count:" + count);
}

13. 문제09

126500 의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력

14. 문제10

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

	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;
	}

or

   int max = num1;

	if( num2 > max) {
		max = num2;
	}

	if( num3 > max) {
		max = num3;
	}

	System.out.println(max);

15. 무한루프

for( ; ; ){...}
 
while(true){...}
 
do{
}while(ture)

1) while문 무한루프 (do.while도 마찬가지임)

public class Hello {
    public static void main(String[] args) {
        while(true) {
            System.out.println("Hello World");
        }
    }    
 }

2) for문 무한루프

public class Hello {
    public static void main(String[] args) {
        for(;;) {
            System.out.println("Hello World");
        }
    }    
 }

무한루프에서 탈출하려면 조건문+break밖에 방법이 없다.

16. 문제11

구구단 출력하기 02

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

17. 문제12

구구단 짝수단만

public class Hello {
    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();
        }    
    }    
 }

18. 문제13

구구단 3의 배수인 단만

public class Hello {
   public static void main(String[] args) {
       for(int i=2; i<10; i++) {
           **if(i%3!=0)
               continue;**
           
           for(int j =1; j<10; j++) {
               System.out.println(i+"x"+j+"="+i*j);
           }
           System.out.println();
       }    
   }    
}

19. 문제14

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

20. 문제15

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

0개의 댓글