목표달성(2022.5.9)
■ HOMEWORK
[트러블슈팅] 그날 트러블슈팅 또는 본인 습관체크 >>
잘안되는 부분은 문제 해결 어떻게 했는지
▶ while안이나 do while안에 if같은 조건문 쓸때 증감식을 자꾸 빼먹는다. for은 조건식 쓸때 증감식을 같이 써서 빠뜨리진 않는데 while은 중괄호 안에 있어 중첩된게 있으면 빠뜨리는데 식을 다썼을땐 빠뜨리진않았는지 더 확인해봐야겠다.
▶ switch 조건식 안에는 == 들어가면 안된다. 조건식이라고해서 num%2==0 이렇게 다 써도 되는 줄 알았는데 조건식 결과는 정수 또는 문자열이여야지만 한다.
▶ Repet004번 1~10까지 3의 배수의 합을 구하는 식은 쓸 줄 아는데 "1~10까지 3의 배수의 합 : 3+6+9=18" 중에서 3+6+9 여기를 쓸 줄 몰라서 선생님의 힌트를 얻어서 이해해갔다. 뒤에 boolean 변수 선언하고 삼항연산자로 풀이해 나가면 된다.
■ 금일목표
::: for를 이용하여 계산기의 유효성검사(0~100사이만 입력받기, 연산자는 + -*/만입력받기)를 할수 (있다.)
1. 정수 하나 입력 > _____ (0~100사이만 입력가능하게, 잘못입력하면 다시 입력받게 무한반복)
2. 정수 하나 입력 > _____ (0~100사이만 입력가능하게, 잘못입력하면 다시 입력받게 무한반복)
3. 연산자 입력 (+,-,*,/ ) > _____ (연산자는 +,-,*,/ 만 입력가능하게, 잘못입력하면 다시 입력받게 무한반복)
import java.util.Scanner;
public class ---------{
public static void main(String [] args){
int i = 0, j = 0; char ch = ' '; String result = "";
Scanner scanner = new Scanner(System.in);
for (;;){
System.out.print("정수 하나 입력 > "); i = scanner.nextInt();
if (i >=0 && i<= 100) {break;}
}
for (;;){
System.out.print("정수 하나 입력 > "); j = scanner.nextInt();
if (j >=0 && j<= 100) {break;}
}
for (;;){
System.out.print("연산자 입력 (+,-,*,/ ) > "); ch = scanner.next().charAt(0);
if (ch =='+' || ch== '-'|| ch=='*' || ch=='/') {break;}
}
switch(ch) {
case '+' : result = "" + (i+j); break;
case '-' : result = "" + (i-j); break;
case '*' : result = "" + (i*j); break;
case '/' : result = "" + String.format("%.2f",i/(float)j); break;
}
}
}