# 일주일간 부산여행을 다녀온 뒤로 너무 놀자판이었기에 .. 복습을 하려고 합니다.
현재 day7 for문 공부중!
# { 를 쓰고 enter 입력시 바로 } 생성됨!
ctrl + A -> ctrl shift s
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("점수 입력 >> ");
int score = sc.nextInt();
if (score >= 90) {
System.out.println("당신의 학점은 A입니다.");
} else if (score >= 80 && score < 90) {
System.out.println("당신의 학점은 B입니다.");
} else if (score >= 70 && score <80) {
System.out.println("당신의 학점은 C입니다.");
} else {
System.out.println("당신의 학점은 F입니다.");
}
}
}
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("점수 입력 >> ");
int score = sc.nextInt();
char grade = 0;
if (score >= 90) {
grade = 'A';
} else if (score >= 80 && score < 90) {
grade = 'B';
} else if (score >= 70 && score <80) {
grade = 'C';
} else if (score < 70){
grade = 'F';
}
System.out.println("당신의 학점은" + grade + "입니다.");
}
}
# 여기서 else 를 쓰면 오류가 발생하지 않는데,
else if를 쓰면 오류가 발생한다.
왜?
char grade = 0;으로 초깃값 작성을 하지 않았기 때문이다.
char grade; -> char grade = 0;
이렇게 컴파일 할 때 확인 한 번 해주기!
0이 아니여도 된다 !
# 그냥 변수 선언하고 else 사용해도 괜찮, 무방
but, 명확한 코드를 원할 때에는 else if 를 사용하자!
// 유효성 검사 : 원하는 값을 받았는지 체크하는 검사
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
System.out.println("점수 입력 >> ");
int score = sc.nextInt();
if (score >= 0 && score <=100 ) {
char grade = 0;
if (score >= 90) {
grade = 'A';
} else if (score >= 80 && score < 90) {
grade = 'B';
} else if (score >= 70 && score <80) {
grade = 'C';
} else if (score < 70){
grade = 'F';
}
System.out.println("당신의 학점은" + grade + "입니다.");
} else {
System.out.println("정확한 학점을 입력해주세요.");
}
}}
유효성 검사는 0점부터 100점까지만 점수 입력 가능하고, 그러한 조건을 정확하게 입력받기 위해 상단에 if문을 한번 더 사용해주었습니다!
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수 입력 >> ");
int score = sc.nextInt();
char grade = 'F';
// 100
// 99, 98, 97 ... 90 => A
// 1의 자리 숫자는 중요 x / 10의 자리숫자만 중요 o
// 89, 88, 87, 86 .... 80 => B
// 10의 자리만 판별하자! 나누기 사용!
if (score >= 0 && score <=100) {
switch(score/10) {
case 10:
grade = 'A';
case 9:
grade = 'A';
case 8:
grade = 'B';
case 7:
grade = 'C';
default:
grade = 'F';
}
System.out.println("당신의 학점은" + grade + "입니다.");
}}}
이렇게 쓰면 F만 출력되는 불상사를 맞게 됩니다!
그러면 어떻게 해야할까요 ?
break를 사용해주어야 합니다~
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수 입력 >> ");
int score = sc.nextInt();
char grade = 'F';
// 100
// 99, 98, 97 ... 90 => A
// 1의 자리 숫자는 중요 x / 10의 자리숫자만 중요 o
// 89, 88, 87, 86 .... 80 => B
// 10의 자리만 판별하자! 나누기 사용!
if (score >= 0 && score <=100) {
switch(score/10) {
case 10:
grade = 'A';
break;
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
default:
grade = 'F';
break;
}
System.out.println("당신의 학점은" + grade + "입니다.");
}}}
이게 맞습니다 !
case 10과 9는 같은 값인 A를 출력합니다.
그러므로 반복되는 식을 두번이나 굳이 작성하지 않아도 됩니다.
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수 입력 >> ");
int score = sc.nextInt();
char grade = 'F';
// 100
// 99, 98, 97 ... 90 => A
// 1의 자리 숫자는 중요 x / 10의 자리숫자만 중요 o
// 89, 88, 87, 86 .... 80 => B
// 10의 자리만 판별하자! 나누기 사용!
if (score >= 0 && score <=100) {
switch(score/10) {
case 10:
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
default:
grade = 'F';
break;
}
System.out.println("당신의 학점은" + grade + "입니다.");
}}}
월 입력 코드!
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu3 {
public static void main(String[] args) {
System.out.println("월 입력 >> ");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int lastDay = 0;
// 31일 : 1,3,5,7,8,10,12
// 30일 : 4,6,9,11
// 28일 : 2
switch (month) {
case 1,3,5,7,8,10,12:
lastDay =31;
case 4,6,9,11:
lastDay = 30;
case 2:
lastDay = 28;
default:
System.out.println("정확한 월 수를 입력해주세요");
}
}
}
# 또 바보같은 실수, break사용해주어야죠!
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu3 {
public static void main(String[] args) {
System.out.println("월 입력 >> ");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
int lastDay = 0;
// 31일 : 1,3,5,7,8,10,12
// 30일 : 4,6,9,11
// 28일 : 2
if (month >=1 && month <=12) {
switch (month) {
case 1,3,5,7,8,10,12:
lastDay =31;
break;
case 4,6,9,11:
lastDay = 30;
break;
case 2:
lastDay = 28;
}
System.out.println("마지막 일은" + lastDay + "일 입니다.");
}
else {
System.out.println("정확한 월를 입력해주세요!");
}
}
}
여기서 default 를 else로 변경해주었음, 왜? 유효성 검사를 하기 위해서
상단에 if(month >=1 && month <=12) 라는 코드와
else코드를 작성해 주었습니다 !
- for문
for(초기식 ; 조건식; 증감식) {
반복할 문장;
반복할 문장;
...
}
1. 초기식을 실행한다.
2. 조건식을 확인한다.
2-1. 조건식이 참이라면 for문 안쪽 문장을 수행한다.
2-1-1. 실행한 다음, 증감식을 실행한다.
2-2. 조건식이 거짓이라면 for문을 마친다. (종료)
package Blog_for_moon;
public class Wlyu5 {
public static void main(String[] args) {
// i는 처음 값이 5이며, i는 10보다 작을 때까지 1씩 증가하면서 반복하겠다.
for(int i = 5; i < 10; i = i+1) {
System.out.println(i + "번째 입니다.");
}
}
}
package Blog_for_moon;
public class Wlyu6 {
public static void main(String[] args) {
for (int i=0; true; i= i+1) {
System.out.println(i);
}
}
}
# 무한루프에 빠짐,
true -> false 로 하면 오류가 발생함!
package Blog_for_moon;
public class Wlyu6 {
public static void main(String[] args) {
for (int i=0; i<10; ) {
System.out.println(i + "번째 입니다.");
}
}
}
# 계속 반복됨! 증감식이 없으니까!
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
// 1. 사용자에게 반복 횟수를 입력 받아, 해당 횟수만큼 이름 출력하기
// 입력 예시
// 반복 횟수 >> 5
// 출력 예시
// 김참이
// 김참이
// .... 5번 반복
Scanner sc = new Scanner(System.in);
System.out.println("반복횟수 >>");
int count = sc.nextInt();
for (int i =0; i<count; i=i+1) {
System.out.println("김지윤");
}
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 2. 사용자에게 정수를 입력받아 1부터 해당 정수까지 가로로 출력하기
// 입력예시
// 정수 >> 10
// 출력 예시
// 1 2 3 4 5 6 7 8 9 10
System.out.println("정수 >> ");
int cnt = sc.nextInt();
for (int i=1; i<=cnt; i=i+1) {
System.out.print(i + " ");
}
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 3. 10부터 1까지 가로로 출력하기
// 10 9 8 7 6 5 4 3 2 1
int num = 10;
for (int i=0; i < 10; i=i+1) {
System.out.print(i + " ");
num = num - 1;
}
// 3. 10부터 1까지 가로로 출력하기
// 10 9 8 7 6 5 4 3 2 1
for (int i=10; i >0; i = i-1) {
System.out.println(i + " ");
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 4. 1부터 100까지의 숫자 중 짝수만 가로로 출력하기
for (int i=2; i<=100; i= i+2) {
System.out.println(i + " ");
}
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 5. 사용자에게 정수를 입력받아 1부터 해당 수까지의 총합 출력하기
int sum = 0;
int cnt = sc.nextInt();
for (int i = 0; i < cnt; i=i+1) {
sum = sum + 1;
}
System.out.println(sum);
#구구단
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 6. 사용자에게 단을 입력받아 구구단 출력하기
int dan = 3;
System.out.println("--구구단--");
for (int i = 0; i<9; i=i+1) {
System.out.println(dan + "x"+ (i+1)+"="+(dan*(i+1)) );
}
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 7. 사용자에게 정수 입력받아 별 출력하기
// *
// **
// ***
// ****
String star = "*";
for (int i = 0; i<4; i=i+1) {
System.out.println(star);
star = star + "*";
}
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 7. 사용자에게 정수 입력받아 별 출력하기
// *
// **
// ***
// ****
String star = "*";
for (int i = 0; i<4; i=i+1) {
System.out.printf("%4s\n", star);
star = star + "*";
}
# 2중 for문 제일 어려움 (복습 3번 하기: ●○○ )
package Blog_for_moon;
import java.util.Scanner;
public class Wlyu7 {
public static void main(String[] args) {
// 2단부터 9단까지 출력
// 9번의 반복
Scanner sc = new Scanner(System.in);
for (int dan = 2; dan <=9; dan = dan + 1 ) {
for (int i=1; i<10 ; i=i+1) {
System.out.println(dan + "x" + i + "=" + (dan*i));
}
}
}
}
'JAVA' 카테고리의 다른 글
[08] JAVA_DAY08 (0) | 2022.08.09 |
---|---|
[10] JAVA_DAY10 (0) | 2022.08.08 |
[09] JAVA_DAY09 (0) | 2022.08.08 |
for문 연습 (0) | 2022.07.30 |
[07] JAVA_DAY07 (0) | 2022.07.29 |