JAVA 4일차(221027)

점햠미·2022년 10월 27일
0

JATBAP'S JAVA

목록 보기
4/22
post-thumbnail

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

if문 : if의 조건에 부합하면 중괄호 안에 설정해둔 값 출력.

if - else문 : if문의 조건에 맞지 않을 때 나올 값을 else의 {}안에 
			 설정해서 출력시킴. if나 else값 중 하나는 무조건 실행.
             
if ~ else if ~ else : if,else 둘 다 false일 때, else if에서 설정한 값이 출력됨.
					  검사하고 싶은 조건이 많을 때 사용. else if는 여러번 사용 가능.
                      모든게 false값이 나오면 else값이 출력됨.

if문 예제

	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문에 속한 문장이 하나일 경우 중괄호 생략 가능 but 가능하면 쓰자.

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 문 예제

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점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오.
	public class If3 {
      public static void main(String[] args) {
          // 국어,영어,수학 점수 임의로 넣고, 성적매기기
          // 90-수, 80-우, 70-미, 60-양, 가

          int kor = 80;
          int eng = 60;
          int mat = 80;
          int total;
          double avg;

          total = kor + eng + mat;
          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 = 최대값을 출력하시오.
public class sdfsd {
	public static void main(String[] args) {
	    
    	int num1 = -80;
        int num2 = 33;
        int num3 = 55;

        if ((num1 > num2) && (num1 > num3)) {
            System.out.println("최대값은 ? : " + num1);
        } else if((num2 > num1) && (num2 > num3)) {
            System.out.println("최대값은 ? : " + num2);
        } else {
            System.out.println("최대값은 ? : " + num3);
      	}
	}
}

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

switch문
: 조건이 맞는 case를 찾아가서 break까지 실행 후 조건문을 빠져나간다. 
  만일 조건에 맞는 게 없을 경우 default를 실행한다.
  
  switch(n) 에서 n에는 기본적으로 정수가 온다. (실수는 오면 안된다!)
	int n =3;
	
    switch(n) { //n에는 기본적으로 정수가 온다. 실수는 오면 안된다.!
	case 1:
    System.out.println("Simple Java");
	case 2:
	System.out.println("Funny Java");
	case 3:
	System.out.println("Fantastic Java");
	default:
	System.out.println("The best programming language");
	}

	System.out.println("Do you like Java?");

이 상황에서는 break가 없어서 출력이 3번째와 그 이후 것도 나온다.

출력 결과물
Fantastic Java
The best programming language
Do you like Java?

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

int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오.
public class Hello {
	public static void main(String[] args) {
    	
        int num = -10;
		
        if(num < 0) {
        num = -num;
		}
	
    System.out.println("절댓값은 " +num);
	}
}    

-> 출력값 "절댓값은 10"

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

while문은 확인해보고 실행.
do while문은 우선 먼저 실행해보고 그 다음에 확인.

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

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

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

예시

for(int i = 0; i<3; i++){
System.out.println("조건에 맞으면 출력");
}

for문의 실행 순서

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

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

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

     	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단까지 다 나오는거긴 한데요...

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

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

      int i;
      int sum = 0;

      for(i = 1; i <= 100; i++) {
          sum = sum + i;
      }
      System.out.println("1부터 100까지 더한 값은 " + sum + "입니다.");	
   }
}

-> 출력 값 "1부터 100까지 더한 값은 5050입니다."

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

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

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

-> 출력값 "1부터 100까지 홀수의 합은 2500입니다."

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

break = true인 경우에 반복문을 바로 빠져나옴.
continue = false인 경우에 밑으로 내려가지않고 다시 반복문 처음으로 올라감.

예시

// 처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문
public class Hello {
	public static void main(String[] args) {

		int num = 1;
		boolean search = false;
        
		//처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문
		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의 배수인 수를 찾지 못했습니다.");
		}
	}	
}

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

1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번째 수는?
public class sdfsd {
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 (search)
		System.out.println("찾는 정수 : " + num);
   }
}

-> 출력값 "찾는 정수 : 15"

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

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

      int num = 0;
      int count = 0;

      // 1~1000까지 2의배수이자 3의 배수인 수를 찾고, 몇개인지 카운팅하는 프로그램 작성

      while((num++) <= 1000) {
          if(((num % 2) != 0) || ((num % 3) != 0)) {
              continue;		// 2나 3의 배수가 아니라면 나머지 건너뛰고 위로 이동.
          }
          count++;	//2의 배수이자 3의 배수면 카운트함.
      }
      System.out.println("count : " + count);
   }
}

-> 출력값 "count : 166"

14.화폐매수 구하기?

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

예) int 126500;
	오만원 : 2장
	만원 : 2장
	오천원짜리 : 1장
	천원짜리 : 1장
	오백원짜리 : 1개
	백원짜리 : 0개

public class sdfsd {
	public static void main(String[] args) {
		
		int money = 126500;
		int m500, m100, m50, m10, m5, m1;
		int temp;
		
		m500 = money/50000;
		temp = money - (m500*50000);
		
		m100 = temp/10000;
		temp = temp - (m100*10000);
		
		m50 = temp/5000;
		temp = temp - (m50*5000);
		
		m10 = temp/1000;
		temp = temp - (m10*1000);
		
		m5 = temp/500;
		temp = temp - (m5*500);
		
		m1 = temp/100;
		
		System.out.println("50,000원 : " + m500 + "장");
		System.out.println("10,000원 : " + m100 + "장");
		System.out.println(" 5,000원 : " + m50 + "장");
		System.out.println(" 1,000원 : " + m10 + "장");
		System.out.println("   500원 : " + m5 + "장");
		System.out.println("   100원 : " + m1 + "장");
   }
}

-> 출력값 :
"50,000원 : 2장
10,000원 : 2장
5,000원 : 1장
1,000원 : 1장
500원 : 1장
100원 : 0장"

사실 무슨 소린지 잘 모르겠어요 ^^....... 코드는 강사님꺼 훔쳐옴 ㅎㅎ

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

public class sdfsd {
	public static void main(String[] args) {
		
		int num1 = 90;
		int num2 = 70;
		int num3 = 100;

		int max;

		max = (num1 > num2) ? (num1 > num3 ? num1 : num3) : 
        	  (num2 > num3 ? num2 : num3);
		System.out.println("큰 수 : " + max);
   }
}

-> 출력값 "큰 수 : 100"
네 또 훔쳐왔어요. 모르겠어요

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

1. for( ; ; ){...}
2. while(true){...}
3. do{
   }while(ture)
 
//for문 무한루프
public class Hello {
    public static void main(String[] args) {
        for(;;) {
            System.out.println("Hello World");
        }
    }    
 }
 
//while문 무한루프
public class Hello {
    public static void main(String[] args) {
        while(true) {
            System.out.println("Hello World");
        }
    }    
 }
 
//do.while 무한루프
public class Hello {
    public static void main(String[] args) {
        do {
            System.out.println("Hello World");
        }while(true)
    }    
 }
 
//무한루프에서 탈출하려면 조건문+break밖에 방법이 없다.

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

public class Hello {
    public static void main(String[] args) {
      for(int i = 1; i <= 9; i++) {
      	for(int j =1; j <= 9; j++) {
      		System.out.println(i + "*" + j + "=" + (i*j)); 
     	}
      	System.out.println(); // 한 줄 공백 넣기 
      }
   }
}

18.짝수단만 찍으시오.

public class Hello {
    public static void main(String[] args) {
      for(int i = 1; i <= 9; i++) {
      	for(int j =1; j <= 9; j++) {
        	if(i % 2 == 0) {
      			System.out.println(i + "*" + j + "=" + (i*j)); 
            }
     	}
      	System.out.println(); // 한 줄 공백 넣기 
      }
   }
}

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

public class Hello {
    public static void main(String[] args) {
      for(int i = 1; i <= 9; i++) {
      	for(int j =1; j <= 9; j++) {
        	if(i % 3 == 0) {
      			System.out.println(i + "*" + j + "=" + (i*j)); 
            }
     	}
      	System.out.println(); // 한 줄 공백 넣기 
      }
   }
}

20.아래의 Star를 찍으시오

public class Hello {
    public static void main(String[] args) {
		
        for(int i = 1; i < 6; i++) { 
			for(int j = 1; j < 6; j ++) {
				System.out.print("*"); 
			}
      		System.out.println();
          
// println은 자동으로 줄바꿈됨. print는 줄바꿈 안됨
// print로 줄바꿈하려면 이스케이프 써야댐 + "\n" 사용
	}
}

21.아래의 Star를 찍으시오

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

助けて

profile
인생 망함 개조빱임

1개의 댓글

comment-user-thumbnail
2022년 11월 19일

강사님의 코드를 훔쳐온 정향상의 코드를 훔ㅊㅕ가는 나.. (14번)

답글 달기