- 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); } }
'코딩 > 수업 정리' 카테고리의 다른 글
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 |
댓글