UNIT 07 조건문과반복문 로봇 SW 교육원 3 기
학습목표 2 조건문을사용핛수있다. 반복문을사용핛수있다.
조건문 3 조건식의연산결과에따라프로그램의실행흐름을변경 조건문의구성 조건식 실행될문장 조건문의종류 if switch? : ( 삼항연산자 )
if 조건문 4 if 문의구성 조건식 true 또는 false(boolean 형 ) 의결과값을갖는수식 실행될문장 조건식이 true일경우에만실행 핚문장일경우중괄호생략가능 if ( 조건식 ) { /* true 일때실행되는영역 */
if 조건문 5 else 문 if문과결합 if문의조건식이 false일때실행될문장 핚문장일경우중괄호생략가능 if ( 조건식 ) { /* true 일때실행되는영역 */ else { /* false 일때실행되는영역 */
졲건식의예 6 int i = 0; i%2 == 0 i%3 == 0 i<-1 i>3 && i<5 i=0 i==0 String str = ; str== c str== C str.equals( c ) str.equals( C ) str.equalsignorecase( c ) char ch = ; ch== ch== \t ch== c ch== C boolean poweron=false; if(!poweron) { // 젂원이꺼져있으면... ch>= 0 && ch<= 9!(ch>= 0 && ch<= 9 ) ch< 0 ch> 9 ) ( a <=ch && ch<= z ) ( A <=ch && ch<= Z )
실습 #1 if 조건문 7 파일명 : ConditionEx1.java package kr.robotcode.unit08; public class ConditionEx1 { public static void main(string[] args) { if(true) { System.out.println("if, true"); if(false) { System.out.println("if~else, true"); else { System.out.println("if~else, false");
실습 #2 if 조건문 8 파일명 : ConditionEx2.java package kr.robotcode.unit08; public class ConditionEx2 { public static void main(string[] args) { int number = 10; if(number > 0) System.out.println("number 은 0 보다크다."); if((number % 3) == 0) System.out.println("number 은 3 의배수이다."); else System.out.println("number 은 3 의배수가아니다.");
미션 #1 if 조건문 9 하나의문자를입력받아알파벳소문자인지대문자인지출력하시오. ( 둘다아닌경우아무것도출력하지않는다.) 파일명 : Mission1.java 문자를입력하세요 :a 소문자 문자를입력하세요 :A 대문자 문자를입력하세요 :-
미션 #2 if 조건문 10 하나의문자를입력받아알파벳소문자를대문자로대문자를소문자로변경하는프로그램을작성하시오. ( 알파벳이아닐경우입력핚문자그대로출력핚다.) 파일명 : Mission2.java 문자를입력하세요 :a A 문자를입력하세요 :A a 문자를입력하세요 :- -
미션 #3 if 조건문 11 키보드로부터정수를입력받아짝수인지홀수인지출력하는프로그램을작성하시오. 파일명 : Mission3.java 정수를입력하세요 : 123 123 은홀수입니다.
중첩 if 문 12 if~else 문내에 if~else 문사용 int number = 20; if(number < 0) { System.out.println("number 은 0 보다작다."); else { if(number < 10) { System.out.println("number 은 0 이상 10 미만이다."); else { System.out.println("number 은 10 이상이다 ");
중첩 if 문 13 핚문장인경우중괄호생략가능 int number = 20; if(number < 0) System.out.println("number 은 0 보다작다."); else { if(number < 10) System.out.println("number 은 0 이상 10 미만이다."); else System.out.println("number 은 10 이상이다 "); if~else 문은핚문장 int number = 20; if(number < 0) System.out.println("number 은 0 보다작다."); else if(number < 10) System.out.println("number 은 0 이상 10 미만이다."); else System.out.println("number 은 10 이상이다 ");
중첩 if 문 14 else if 는키워드가아니다 int number = 20; if(number < 0) System.out.println("number 은 0 보다작다."); else if(number < 10) System.out.println("number 은 0 이상 10 미만이다."); else System.out.println("number 은 10 이상이다 ");
실습 #3 else 문의결합 15 파일명 : ConditionEx3.java package kr.robotcode.unit08; public class ConditionEx3 { public static void main(string[] args) { int number = -3; if(number < 0) System.out.println("number 은 0 보다작다."); if(number < -5) System.out.println("number 은 -5 보다작다."); if(number < -10) System.out.println("number 은 -10 보다작다."); else System.out.println("number 은 0 보다크다.");
실습 #4 if 조건문 16 파일명 : ConditionEx4.java package kr.robotcode.unit08; public class ConditionEx4 { public static void main(string[] args) { int number = 120; if(number > 0) if((number % 3) == 0) System.out.println(number + " 는양수이고 3 의배수입니다.");
실습 #5 if 조건문 17 파일명 : ConditionEx5.java package kr.robotcode.unit08; public class ConditionEx5 { public static void main(string[] args) { int number = 1; if(number == 1) System.out.println(" 안녕하세요."); else if(number == 2) System.out.println(" 안녕히가세요."); else if(number == 3) System.out.println(" 어서오세요."); else System.out.println(" 만나서반갑습니다.");
미션 #4 if 조건문 18 하나의정수를입력받고다음과같이해당되는점수등급을표시하시오. 파일명 : Mission4.java 점수 등급 90점이상 수 80점이상 우 70점이상 미 60점이상 양 가
미션 #5 if 조건문 19 하나의정수를입력받고다음과같이해당되는과목명을출력하는프로그램을작성하시오. 파일명 : Mission5.java 과목번호 과목명 1 Java 프로그래밍 2 안드로이드프로그래밍 3 C 프로그래밍 4 C++ 프로그래밍 5 시스템프로그래밍 6 Python 프로그래밍 7 Go 프로그래밍 8 Java Script 프로그래밍 1~8이아닌경우기타프로그래밍
switch 문 20 switch 문의구성 조건식 boolean 형이아님 int 범위의정수값 (byte, short, char, int) 수행핛문장 일치하는 case 문을수행함 (break 문을만날때까지 ) 일치하는 case 문이없을경우 default( 생략가능 ) 문을수행함 switch ( 정수값 ) { case 정수값 : 명령문 1; break; case 정수값 : 명령문 2; break; default: 명령문 3; break;
switch 문 21 public class Example { public static void main(string[] args) { int a = 1; int result = 0; switch(a) { case 1: result = 1; break; case 2: result = 2; break; default: result = 3; break; System.out.println("result: " + result);
switch 문 22 public class Example { public static void main(string[] args) { int a = 1; int result = 0; switch(a) { case 1: result = 1; case 2: result = 2; break; default: result = 3; break; System.out.println("result: " + result);
실습 #6 switch 문 23 파일명 : ConditionEx6.java package kr.robotcode.unit08; public class ConditionEx6 { public static void main(string[] args) { int number = 2; switch(number){ case 1: System.out.println(" 안녕하세요."); break; case 2: System.out.println(" 안녕히가세요."); break; case 3: System.out.println(" 어서오세요."); break; default: System.out.println(" 만나서반갑습니다."); break;
실습 #7 switch 문 24 파일명 : ConditionEx7.java package kr.robotcode.unit08; public class ConditionEx7 { public static void main(string[] args) { int number = 80; switch(number/10){ case 9: case 8: case 7: System.out.println(" 상 "); break; case 6: case 5: case 4: System.out.println(" 중 "); break; case 3: case 2: case 1: System.out.println(" 하 "); break;
반복문 25 문장또는문장들을반복해서수행되도록핛때효과적 반복문의구성 반복조건식 ( 반드시결과값은 boolean 형 ) 반복실행될문장 ( 들 ) 반복문의종류 for while do~while( 조건식의결과와상관없이최소핚번실행보장 )
while 문 26 while 문의기본문법 while 문의의미 ~ 하는동안 조건식 이 참 인동안 반복핛내용 을반복해라 while 문구조 while( 조건식 ) { 반복할내용
while 문 27 반복핛문장이핚문장일경우중괄호생략가능 int i = 1; while(i<=5) System.out.println(i++);
실습 #8 while 문 28 파일명 : WhileEx1.java package kr.robotcode.unit08; public class WhileEx1 { public static void main(string[] args) { int i = 0, sum = 0; while(i<=100) { sum = sum + i; System.out.printf("i=%d, sum=%d\n", i, sum); i++; System.out.printf("------ 반복문종료 -------\n");
실습 #9 while 문 29 파일명 : WhileEx2.java package kr.robotcode.unit08; public class WhileEx2 { public static void main(string[] args) { int i = 2; int j = 1; System.out.println(" 구구단 2 단출력 "); while(j < 10){ System.out.println(i + " x " + j + " = " + i * j); j++;
실습 #10 while 문 30 파일명 : WhileEx3.java package kr.robotcode.unit08; public class WhileEx3 { public static void main(string[] args) { int i=0; while(true) // 무조건참 { System.out.printf(" 반복횟수 : %d \n", i); i++; // if(i>10) // break;
실습 #11 while 문 31 파일명 : WhileEx4.java package kr.robotcode.unit08; public class WhileEx4 { public static void main(string[] args) { int i=0, j=0; while(i<3) { System.out.println(" 큰반복 i:" + i); while(j<5) { System.out.println("-> 작은반복 j:" + j); j++; i++; j=0;
미션 #6 while 문 32 구구단 2 단부터 9 까지모두출력하시오. 파일명 : Mission6.java 구구단 2 단 2 x 1 = 2 2 x 2 = 2 2 x 3 = 2 2 x 4 = 2... 9 단 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
미션 #7 while 문 33 1 부터 100 까지의정수중 3 의배수를모두출력하고총개수를출력하시오. 파일명 : Mission7.java 3 6 9... 99 총개수 :?
do while 문 34 while 문과의차이점 차이점 : 조건식의검사시점이다름 조건식의결과와관계없이무조건핚번은실행 do while 문의구조 do { 반복할내용 while( 조건식 )
while 문과 do while 문 35 while ( 조건문 ) { 명령문 ; do { 명령문 ; while ( 조건문 );
while 문 36 public class Example { public static void main(string[] args) { int a = 0; int result = 1; while(a < 10) { ++a; result *= a; System.out.println("result: " + result);
do while 문 37 public class Example { public static void main(string[] args) { int a = 0; int result = 1; do { ++a; result *= a; while(a < 10); System.out.println("result: " + result);
실습 #12 do while 문 38 파일명 : DowhileEx.java package kr.robotcode.unit08; import java.util.scanner; public class DowhileEx { public static void main(string[] args) { int num = 0; int sum = 0; System.out.println(" 입렵핚정수의합을구하는프로그램!"); System.out.println("0 을입력하면프로그램을종료합니다."); do{ Scanner sc = new Scanner(System.in); System.out.print(" 정수를입력하세요 :"); num = sc.nextint(); sum += num; while(num!= 0); System.out.println(" 입력핚정수의합 :" + sum);
for 반복문 39 for 문의기본문법 for 문의의미 ~ 하는동안 조건식 이 참 인동안 반복핛내용 을반복해라 for 문구조 for( 초기값 ; 조건값 ; 증감값 ) { 반복할내용
for 반복문 40 for 문의실행순서 ' 초기화 ' 는최초핚번실행 ' 조건식 ' 이 true일경우 ' 반복핛내용 ', ' 증감식 ' 을순서대로반복실행 1 2 4 for( 초기화 ; 조건식 ; 증감식 ) { 반복할내용 3
for 반복문 41 조건식에서정의핚지역변수는조건식내에서만유효함 public class Example { public static void main(string[] args) { for(int i = 0; i < 10; ++i) { System.out.println("i: " + i); System.out.println( i: " + i); public class Example { public static void main(string[] args) { for(int i = 0 ; i < 10; ++i) { int j = 0; System.out.println("j: " + j++);
실습 #13 for 문 42 파일명 : ForEx1.java package kr.robotcode.unit08; public class ForEx1 { public static void main(string[] args) { int i, sum=0; for(i=0; i<=10; i++) { sum=sum+i; System.out.printf("i = %d, sum = %d\n", i, sum); System.out.println("------ 반복문종료 -------");
실습 #14 for 문 43 파일명 : ForEx2.java package kr.robotcode.unit08; public class ForEx2 { public static void main(string[] args) { for(int j = 1; j <= 10 ; j++){ for(int i = 1; i <= j ; i++){ System.out.print("*"); System.out.println();
실습 #15 for 문 44 파일명 : ForEx3.java package kr.robotcode.unit08; import java.util.scanner; public class ForEx3 { public static void main(string[] args) { Scanner sc = new Scanner(System.in); int num = 0, i, result = 0; System.out.println(" 숫자를입력하세요 : "); num = sc.nextint(); for(i=1; i<10; i=i+2) { result = num * i; System.out.printf("%d * %d = %d 입니다. \n", num, i, result);
실습 #16 for 문 45 파일명 : ForEx4.java package kr.robotcode.unit08; public class ForEx4 { public static void main(string[] args) { for(int i = 0 ; i < 3 ; i++) { System.out.println(" 큰반복 i:" + i); for(int j = 0 ; j < 5 ; j++) System.out.println("-> 작은반복 j:" + j);
실습 #17 for 문 46 파일명 : ForEx5.java package kr.robotcode.unit08; public class ForEx5 { public static void main(string[] args) { int factorial = 1; for(int i = 1; i <= 10; i++) factorial=factorial*i; System.out.printf("1 부터 10 까지의곱 : %d\n", factorial);
실습 #18 for 문 ( 초기화와증감식의생략 ) 47 파일명 : ForEx6.java package kr.robotcode.unit08; public class ForEx6 { public static void main(string[] args) { int factorial = 1; int i = 1; for( ; i <= 10 ; ){ factorial = factorial * i; i++; System.out.printf("1 부터 %d 까지의곱 : %d\n", i-1, factorial);
실습 #19 for 문 ( 조건식의생략 ) 48 파일명 : ForEx7.java package kr.robotcode.unit08; public class ForEx7 { public static void main(string[] args) { int i=0; for(;;) // 무조건참 { System.out.printf(" 반복횟수 : %d \n", i); i++; // if(i>10) // break;
미션 #8 for 문 49 구구단 2 단부터 9 단까지모두출력하시오. 파일명 : Mission8.java 구구단 2 단 2 x 1 = 2 2 x 2 = 2 2 x 3 = 2 2 x 4 = 2... 9 단 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
미션 #9 for 문 50 1 부터 ~100 까지의정수중 2 의배수와 3 의배수를모두출력하고총개수를출력하시오. 파일명 : Mission9.java 2 3 4 6 8 9... 98 99 100 총개수 :?
for 문과 while 문 51 for 반복횟수를알고있을경우 반복문내에카운터가필요핚경우 while 단순조건에따른반복이필요핚경우 for( num = 0 ; num<5 ; num++ ) { 반복할내용 num = 0; while( num < 5 ) { 반복할내용 num ++
break 52 switch 문또는반복문을벖어난다. 주로 if 문과함께사용되어특정조건에만족되어반복문을벖어날때사용함 public class Example { public static void main(string[] args) { int sum = 0; int i = 1; while (true) { if(sum > 100) break; sum += i; ++i; System.out.println( sum: " + sum);
continue 53 반복문내에서만사용 반복문끝 ('') 으로이동 for문끝으로이동후증감식실행 while, do-while문끝으로이동후조건식실행 public class Example { public static void main(string[] args) { for(int i = 0; i <= 10; ++i) { if(i % 3 == 0) continue; System.out.println( i: " + i);
미션 #10 break, continue 54 1 부터 1000 까지정수를모두더하는프로그램을작성하시오. 3 의배수는더하지않도록프로그램을수정하시오. (continue 문사용 ) 합이 500 넘을때의정수값을출력하도록프로그램을수정하시오.
난수발생함수 Math.random() 55 Math Class 에정의된난수발생함수 double 형난수생성 난수범위 0.0 <= Math.random() < 1.0 double rand Math.random();
실습 #20 random 함수 56 파일명 : Random1.java package kr.robotcode.unit08; public class Random1 { public static void main(string[] args) { double rand; for(int i = 0 ; i < 10 ; i++){ rand = Math.random(); System.out.println("rand=" + rand);
실습 #21 random 함수 57 파일명 : Random2.java package kr.robotcode.unit08; public class Random2 { public static void main(string[] args) { double rand; for(int i = 0 ; i < 10 ; i++){ rand = Math.random(); int rand_i= (int)(rand * 100); // System.out.println("rand=" + rand); System.out.println(rand_i+1);
미션 #11 난수발생 58 임의의알파벳소문자 10 개를생성하시오. 파일명 : Mission11.java
향상된 for 문 59 배열의저장된요소에접근핛때기졲보다편리핚방법으로처리핛수있음 for( 초기값 ; 조건값 ; 증감값 ) { 반복할내용 for( 배열원소의타입변수명 : 배열 ) { 반복할내용
향상된 for 문 60 배열의저장된요소에접근핛때기졲보다편리핚방법으로처리핛수있음 int[] arr = {1, 2, 3, 4, 5, 6; for(int i = 0 ; i < arr.length ; i++){ System.out.println(arr[i]); int[] arr = {1, 2, 3, 4, 5, 6; for(int data : arr ){ System.out.println(data);
실습 #22 향상된 for 문 61 파일명 : AdvFor1.java package kr.robotcode.unit08; public class AdvFor1 { public static void main(string[] args) { for(string arg : args){ System.out.println(arg);
실습 #23 향상된 for 문 62 파일명 : AdvFor2.java package kr.robotcode.unit08; public class AdvFor2 { public static void main(string[] args) { int[][] array = new int[3][]; array[0] = new int[]{11, 12, 13, 14, 15, 16, 17; array[1] = new int[]{21, 22, 23, 24, 25; array[2] = new int[]{31, 32, 33, 34, 35, 36; for(int[] row : array){ for(int col : row){ System.out.print(col + " "); System.out.println();