본문 바로가기
코딩/수업 정리

20.11.27 Fri [005]

by 6^6 2020. 11. 27.
728x90
  • if문, if-else문
  • 삼항연산자
  • switch-break문
  • while문, do-while문
  • for문
  • break; 와 continue;
  • 헷갈렸던 문제
  • 오늘의 문제

 

 

if문

else문 안에 if-else문

if(조건문){
	System.out.println(" ");
}else{
	if(조건문){
		System.out.println(" ");
	}else{
		System.out.println(" ");
	}
}

 

if-else if-else문

if(true,false문){
	System.out.println(조건문이 true일때 실행);
}else if(조건문){
	System.out.println(조건문이 true일때 실행);
}else{
	System.out.println(조건문이 true일때 실행);
} //셋 중 하나는 반드시 실행

 

문제 - 최댓값 구하기

public class Hello {
	public static void main(String[] args) {
		//80 , 33, 55 최댓값을 출력
		int a = 80;
		int b = 33;
		int c = 55;
		int max;
		
		//if-else문
		if (a>b) {
			if(b>c) {
				max=b;
			}else {
				max=c;
		}
		}else {
			if(b>c) {
				max = b;
			}else {
				max=c;
			}
		}
		System.out.println(a);
        
        
		//if-else문 다른방법
		max = a;
        
		if(b>max)
			max=b;
		if(c>max)
			max=c;
		System.out.println(max);
	}
}

 

문제 -랜덤으로 숫자뽑고 if문으로 출력하기(응용 - 주사위 문제)

public class Hello {
	public static void main(String[] args) {		
 
        int num =(int)(Math.random()*6)+1; //1~6까지 임의의 수
		
        if(num == 1){
        System.out.println("1번입니다.");
	}		
}

+문제 - 두 개의 주사위를 던졌을 때 나오는 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성하시오.

public class Hello {
	public static void main(String[] args) {       
		while(true){
	        int num1 =(int)(Math.random()*6)+1;
			int num2 = (int)(Math.random()*6)+1;
        System.out.println(num1+","+num2);
        if(num1+num2==5)
        break;
        }     	
	}
}

 

 

 

삼항연산자

변수 = (조건? 수1(true일때 반환) : 수2(false일때 반환))

 

문제 - 최댓값 구하기

public class Hello {
	public static void main(String[] args) {
		//80 , 33, 55 최댓값을 출력        
		//삼항연산자 방법
		max = a>b?((a>c? a : (c>b?c:b))):b;
			System.out.println(max);
	}
			
}

 

switch문

타입형 = 문자열,숫자 다 가능;

switch(숫자or"문자열"){
	case 숫자 or "문자열 :
		System.out.println( );
		break; //break안걸면 이후 값까지 다 출력됨
    
	default : // =else
		System.out.println( );

if문과 다른점 : 비교문x, 정수밖에 못쓴다. 

 

 

예제

public class Hello {
	public static void main(String[] args) {		
 
        int n = 3;
        switch(n) {
        case 1:
        	System.out.println("Simple Java");
            //break;
        case 2:
        	System.out.println("Funny Java");
            //break;
        case 3:
        	System.out.println("Fantastinc Java");
            //break;
        default:
        	System.out.println("THe best programmig language");
        }
        System.out.println("Do you like Java?");
        }
}//결과값
//Fantastinc Java
//THe best programmig language
//Do you like Java?

 

 

while문

while(반복조건 num<5){
	System.out.println( );
    num++;
 } //false값 바로 전까지 출력

 

 

do-while문 (거의 사용X) - 면접용

do{
	System.out.println(num); // 반복영역
    num++;
}while(num<5); //반복조건

while문은 조건을 먼저 체크 - 조건이 true일때만 실행

do-while문은 실행먼저 조건체크 - 따라서 조건이 맞지않아도 처음 실행은 한번 꼭한다.

 

 

for문

for(int i=0; i<5; i++){ //변수초기화; 반복조건; 반복실행
	System.out.println(i);
}

 

문제 구구단 3단 출력

public class Practice {
	public static void main(String[] args) {
		int dan = 3;
		for(int i = 2; i<=9; i++) {
			System.out.println(dan+" X "+i+" = "+i*dan);
		}
	}
}

 

문제 1부터 100까지 합 구하시오.

public class Practice {
	public static void main(String[] args) {		
		int sum =0;
		for(int i = 1;i<=100; i++)
			sum+=i;
		System.out.println(sum);
	}
}

 

문제 1부터 100 중 짝수의 합 구하시오.

public class Practice {
	public static void main(String[] args) {
		
		int sum =0;
		for(int i = 1;i<=100; i++)
			if(i%2==0)
			sum+=i;
		System.out.println(sum);
        
        //또는
		int sum =0;
		for(int i = 0;i<=100; i+=2) //0부터 시작, 2씩 늘어나게 반복
			sum+=i;
		System.out.println(sum);
	}
}

 

문제 500원을 입금했는데 하루에 1원씩 이자가 붙는다면 5일후에는 잔액이 얼마가 되어있을까?

public class Practice {
	public static void main(String[] args) {
		
		int balance =500;
		for(int day = 1;day<=5; day++) {
			balance = balance +1;}
		System.out.println(balance);
	}
}

 

break; 와 continue;

break는 출력 탈출, continue는 해당조건만 출력하지말고 계속

 

 

예제1

public class Practice {
	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;
			}
			num++;
		}
		if(search)
			System.out.println("찾는 정수 : "+num);
		else
			System.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");
	}
}

 

문제 = 5의배수이면서 7의배수의 값과 몇번나왔는지 세기

public class Practice {
	public static void main(String[] args) {
		int num = 0;
		int count = 0;
		
		while((num++)<100) { //여기 넘어가면서 num은 1로 변함
			if(((num%5)!=0)|| ((num%7)!=0))
				continue; //5의배수가아니거나 7의배수가 아닐때 계속반복
			count++;
			System.out.println(num);
		}
		System.out.println("count: "+count);		
	}
}//35
//70
//count: 2

 

 

★★헷갈렸던 문제★★

//while문 안에서 후위연산자를 넣어줄때 생기는 오류

public class Hello {
	public static void main(String[] args) {		
 
		 int num =0; 
		 int sum =0; 
		 while((num++) <= 5){ 	//num이 여기서 5까지 나오고
         				//다음에 빠져나올때 6이 더 추가되어서 6까지 더해진다.
			 System.out.println(num);//여기서 몇까지 출력되는지 알 수 있다.
			 sum+=num;
		} 
		 System.out.println(sum); 
	}
}//1~6까지 더해짐

 

 

오늘의 문제

1.조건문의 3가지 종류를 나열하고 설명하시오.

do-while, while, for

do{반복영역}while(반복조건);

while(변수조건){변수반복실행, 출력}

for(변수의 초기화; 변수조건; 변수반복실행){출력}


2.아래의 프로그램을 짜시오.
 - 국어:80 수학:80 영어:60점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오 

public class Practice {
	public static void main(String[] args) {
		int kor = 80;
		int math = 80;
		int eng = 60;
		int sum = kor+math+eng;
		float avg = sum/3.0f; //형변환해줘야한다.	
		
		System.out.println("과목 총점은" + sum);
		System.out.println("과목 평균은" + 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 {
			System.out.println("가");
		}		
	}
}

- int num = 33 할당후 해당 숫자 짝수면 짝수 입니다 출력. 홀수면 홀수 출력

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

		int num = 33;
		
		if(num%2==0) {
			System.out.println(num+"은 짝수입니다.");		
		}else{
			System.out.println(num+"은 홀수입니다.");
		}
	}
}


 - int num = 66 할당후, 2의 배수 이고 3의 배수이면, 해당 수를 출력하고, 아니면  2의 배수 이고 3의 배수 가 아닙니다 출력.

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

		int num = 66;
		
		if(num%2==0 && num%3==0) {
			System.out.println(num);		
		}else{
			System.out.println(num+"은 2의 배수와 3의 배수가 아닙니다");
		}
	}
}


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

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

		int a = 80;
		int b = 33;
		int c = 55;
		
		if(a>b && a>c) {
			System.out.println(a);
		}else if(b>a && b>c) {
			System.out.println(b);
		}else{
			System.out.println(c);}
	}
}


3.아래를 삼항연산자를 사용하여 프로그래밍 하시오.
-80, 33 ,55 = 최대값을 출력하시오.

public class Practice {
	public static void main(String[] args) {
		int a = 88;
		int b = 33;
		int c = 55;
		int max= ((a>b&&a>c)?a:(b>c&&b>a)?b:c);
		System.out.println(max);
	}
}


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

변수가 조건과 동일한 출력문부터 이후 출력문까지 전부 다 출력된다. 


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

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

		int num = -10;
		if(num<0) {
			System.out.println(-num);
		}else {
			System.out.println(num);
		}	
	}
} //10


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

while문은 조건을 먼저 체크 - 조건이 true일때만 실행

do-while문은 실행먼저 조건체크 - 따라서 조건이 맞지않아도 처음 실행은 한번 꼭한다.


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

변수 초기화해준 값부터 시작해서 반복 조건이 false가 될때까지 반복 실행을 해준다.


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

public class Practice {
	public static void main(String[] args) {
		int dan = 9;
		int i=2;
		while(i<=9) {
			System.out.println(dan+"X"+i+"="+i*dan);
			i++;
		}
	}
}


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

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

		int sum = 0;
		for(int i=1; i<=100; i++) {
			sum +=i;		
		}
		System.out.println(sum);
	}
} //5050


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

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

		int sum = 0;
		for(int i=0; i<=100; i=i+2) {
			sum +=i;		
		}
		System.out.println(sum);
	}
} //2550


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

break는 true면 더이상 반복하지말고 끝

continue는 해당조건만 건너뛰고 계속 다음 반복실행


12. 아래를 프로그래밍 하시오.
  - 1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는?

public class Practice {
	public static void main(String[] args) {
		
		for(int i = 1; i<=1000; i++) {
			if(i%3==0 && i%5==0) { 
				System.out.println(i);
				break;
			}
		}		
	}
} //15


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

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

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



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

public class Practice {
	public static void main(String[] args) {
		int balance = 0;
		int num = 126500;
		int m50000 = 50000;
		int m10000 = 10000;
		int m5000 = 5000;
		int m1000 = 1000;
		int m500 = 500;
		int m100 = 100;
			
		balance = num/m50000;
		System.out.println("오만원:"+balance);
		num -= balance*m50000;
		
		balance = num/m10000;
		System.out.println("만원:"+balance);
		num -= balance*m10000;
		
		balance = num/m5000;
		System.out.println("오천원:"+balance);
		num -= balance*m5000;
		
		balance = num/m1000;
		System.out.println("천원:"+balance);
		num -= balance*m1000;
		
		balance = num/m500;
		System.out.println("오백원:"+balance);
		num -= balance*m500;
		
		balance = num/m100;
		System.out.println("백원:"+balance);
	}
}








 

 

728x90

'코딩 > 수업 정리' 카테고리의 다른 글

20.11.30 Mon [006]  (0) 2020.11.30
자바 자습  (0) 2020.11.28
20.11.26 Thu [004]  (0) 2020.11.26
20.11.25 Wed [003]  (0) 2020.11.25
20.11.24 Tue [002]  (0) 2020.11.24

댓글