예제 1
public class 정수입력받기_2 { public static void main(String[] args) { //키보드로 두 정수를 입력받아 //두 정수의 합을 출력 Scanner sc = new Scanner(System.in); System.out.println("첫번째 수 : "); int num1 = sc.nextInt(); System.out.println("두번째 수 : "); int num2 = sc.nextInt(); System.out.println("입력받은 두 수의 합은 " + (num1 + num2)); } }
예제 2
- 이름, 나이, 연락처 정보를 키보드로 입력받아 입력받은 정보를 출력하시오.
- 풀이 및 결과
public class 정보입력받기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("이름을 입력하세요. : "); String name = sc.next(); System.out.println("나이를 입력하세요. : "); int age = sc.nextInt(); System.out.println("연락처를 입력하세요. : "); String tel = sc.next(); System.out.println("입력받은 정보는 아래와 같습니다."); System.out.println("이름 : " + name); System.out.println("나이 : " + age); System.out.println("연락처 : " + tel); } }
예제 3.
- 국어, 영어, 수학 점수를 Scanner를 사용하여 입력받는다. (단, 국,영,수 점수는 0 ~ 100점 사이라고 가정하고, 소수점 점수는 없다.) 아래의 결과와 동일한 결과가 나오도록 프로그램을 작성하시오.
결과 - 예시
국어점수 : 80
영어점수 : 90
수학점수 : 75
총점 : 245
평균 : 81.666666666667
- 풀이 및 결과
public class If_scanner_q4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("국어점수 : "); int num1 = sc.nextInt(); System.out.print("영어점수 : "); int num2 = sc.nextInt(); System.out.print("수학점수 : "); int num3 = sc.nextInt(); int num4 = num1 + num2 + num3; System.out.println("총점 : " + num4); System.out.println("평균 : " + num4 / 3.0); //선생님 풀이 //double avg = num4 / 3.0; //System.out.println("평균 : " + avg); } }
- switch 표현식
{ case 값1 : 실행문1; break; case 값2 : 실행문2; break; ... default: 실행문n; break; }
- switch(변수) - 변수의 조건이 일치하는 곳에서부터 코드를 전체 해석
예제 1.
public class Switch_01 { public static void main(String[] args) { int num =2; //() : 변수 //조건이 일치하는 곳에서부터 코드를 전체 해석 switch(num){ case 1 : //num이 1이라면... System.out.println(1); System.out.println(1); break; //break 코드가 실행되면 switch문 종료 case 2 : System.out.println(2); break; case 3 : System.out.println(3); break; default: //else문과 동일하게 해석 System.out.println(4); } } }
예제 2.
- 키보드로 문자열을 입력받는다. 입력받은 문자열이 '자바'이면 'java' 출력, 입력받은 문자열이 '파이썬'이면 'python' 출력, 입력받은 문자열이 둘 다 아니면 '잘못입력' 출력(switch case break 사용)
public class Switch_02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("내용을 입력하시오. : "); String blank = sc.next(); switch (blank){ case "자바" : System.out.println("java"); break; case "파이썬" : System.out.println("python"); break; default : System.out.println("잘못입력"); } } }
예제 3.
- 키보드로 점수를 입력(0~100까지의 정수)
점수가 90 <= x <= 100 "A" 출력
점수가 80 <= x <= 89 "B" 출력
점수가 70 <= x <= 79 "C" 출력
점수가 70미만이면 "D" 출력
public class Switch_03 { public static void main(String[] args) { Scanner sc =new Scanner(System.in); int num = sc.nextInt(); switch(num/10){ case (10) : case (9) : System.out.println("A"); break; case (8) : System.out.println("B"); break; case (7) : System.out.println("C"); break; default : System.out.println("D"); } } }
예제 1. while문의 구조
public class While_01 { public static void main(String[] args) { System.out.println("프로그램 시작"); int i = 1; //반복 시작을 위한 초기화 while(i <= 3){ //반복 조건 System.out.println(1); i++; //반복 파기 조건 } System.out.println("프로그램 종료"); } }
예제 2.
- 1부터 10까지의 수 중 홀수만 출력하시오.
- 풀이 및 결과 - 2가지 풀이
public class While_02 { public static void main(String[] args) { int i = 1; while (i < 10) { System.out.println(i); i += 2; //i = 1 + 2; } /////////////////////////////////// int j = 1; while (j < 10){ //만약에 홀수라면 출력 if(j % 2 == 1){ System.out.println(j); } j++; } } }
예제 3.
- while문을 사용하여 1~5까지의 합을 구하시오.
- 풀이 및 결과
public class While_03 { public static void main(String[] args) { //while문을 사용하여 1~5까지의 합 //1+2+3+4+5 int num = 1; int sum = 0; while (num < 6){ sum = sum + num; num++; } System.out.println(sum); } }
예제 4.
- 키보드로 두 정수를 입력받아 입력받은 두 정수 사이의 모든 정수의 합을 출력하시오.
- 풀이 및 결과
public class test_9 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("첫 번째 수 :"); int a = sc.nextInt(); System.out.println("두 번째 수 :"); int b = sc.nextInt(); ///입력받은 두 수의 크기를 결정 //삼항연산자 int max = a > b ? a : b; int min = a > b ? b : a; int sum = 0; int i = min + 1; while (i < max){ sum = sum + i; i++; } System.out.println(sum); int aaa = 0; if(10 >5){ aaa = 1; } else { aaa = 2; } // //삼항 연산자 // int bbb = 10 >5 ? 1: 2; // // (조건)->(참):(거짓) } }
예제 1. while문과 for문 비교
⭐ for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 상관없음. 반복 횟수를 알고 있을 때는 for문, 조건에 따라 반복할 때는 while문을 주로 사용함.
public static void main(String[] args) { // <while문> // int i = 1; // while (i < 6){ // System.out.println(i); // i++; // } //////////////////////////// for(int i = 1; i < 6; i++){ System.out.println(i); } } }
예제 2.
- 1에서 10까지의 수 중에서 홀수만 출력하시오
- 풀이 및 결과
public class For_02 { public static void main(String[] args) { for(int i = 1; i <10; i++){ if(i % 2 == 1){ System.out.println(i); } } } }
예제 3.
- 구구단 중 2단을 출력하시오.
- 풀이 및 결과
public class test_11 { public static void main(String[] args) { for(int i = 0; i < 10; i++){ System.out.println("2 * " + i + " = " + (2 * i)); } } }
예제 4.
- 구구단 2단부터 9단까지 출력하시오.
- 풀이 및 결과
public class test_12 { public static void main(String[] args) { for(int j = 2; j < 10; j++) { for (int i = 0; i < 10; i++) { System.out.println(j + " * " + i + " = " + (2 * i)); } System.out.println(); } } }```
- break 문은 반복문에서 break 문이 있는 현재 위치를 감싸고있는 반복문을 빠져나가기위해 사용한다.
public class Break { public static void main(String[] args) { for(int i = 1; i < 11; i++){ if(i == 5) //break를 만나는 순간 가장 가까운 반복문을 벗어남. break; System.out.println(i); } } }
- continue 문은 반복문(for, while, do~ while)을 다시 시작하기 위해 사용된다.
- continue 문을 사용하는 경우 가장 안쪽의 반복문을 둘러싼 현재 반복을 종료하고, 다음 증감식으로 이동하고 이후 조건식에 따라 반복(loop)_를 실행을 계속한다.
- break 문과 달리, continue 문은 전체 반복(loop)의 실행을 종료하지 않는다.
- while 문에서는 continue 문을 만났을 때, 조건식으로 이동하고 for 문에서 continue 문을 만났을 때는 증감식으로 이동한다.
public static void main(String[] args) { for(int i = 1; i < 11; i++){ if(i == 5){ //continue를 만나면 가장 가까운 반복문의 끝으로 이동. continue; } System.out.println(i); } } }
- *로 3행 5열 형태를 만드시오.
public class DoubleLoop { public static void main(String[] args) { //***** //***** //***** for(int i = 0; i < 3; i++){ for(int j = 0; j < 5; j++) { System.out.print("*"); } System.out.println(); } } }
- 선행학습 기간에 배웠던 scanner, 반복문(while, for)을 복습하고 조건문(switch)과 삼항 연산자를 새롭게 배웠다. scanner는 특별히 어려운 부분이 없었지만 반복문과 함께 사용하면 아직 헷갈리는 부분이 있다. while문을 먼저 익히고, 앞에 풀었던 예제의 풀이와 비교하면서 for문을 작성해보니 그나마 조금 이해가 된다. 지난 주 선행학습 때에는 왜 for문과 while문을 번갈아 써야하는지 전혀 몰랐는데, 예제를 풀다보니 각자 적절히 필요한 상황에 따라 사용한다는 걸 알게 되었다.(*반복 횟수를 알고 있을 때는 for문/조건에 따라 반복할 때는 while문을 주로 사용)
- 지금까지 중에서는 반복문이 제일 어렵게 느껴지는데, 자주 쓰이는 기능이니 헷갈리지 않도록 잘 익혀두어야겠다.