package calculator;
import java.util.ArrayList;
import java.util.Scanner;
public class App { public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// int[] results = new int[10];
// int count = 0;
ArrayList<Integer> results = new ArrayList<>();
Scanner sc = new Scanner(System.in);
선언, 생성 및 대입
Scanner : 클래스명, sc : 변수명
new : 생성자, Scanner : java.util 에서 import 해옴
System.in
ArrayList<Integer> results = new ArrayList<>();
선언, 생성 및 대입
변수 results 를 선언, ArrayList<>(); 를 생성하고 results 라는 변수에 대입
while (true) { // true 를 쓰면 while 문을 조건없이 무한 반복한다는 의미
System.out.println("첫 번째 숫자를 입력하세요: ");
// Scanner 를 사용하여 양의 정수를 입력받고 적합한 타입의 변수에 저장한다.
int num1 = sc.nextInt();
System.out.println("두 번째 숫자를 입력하세요: ");
// Scanner 를 사용하여 양의 정수를 입력받고 적합한 타입의 변수에 저장한다.
int num2 = sc.nextInt();
// 사칙 연산 기호를 적합한 타입으로 선언한 변수에 저장한다. (charAt(0))
System.out.println("사칙 연산 기호를 입력하세요: ");
char operator = sc.next().charAt(0);
sc.nextLine();
int result = 0;
// 제어문을 활용하여 위 요구사항을 만족할 수 있게 구현한다.
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
case '%':
result = num1 % num2;
break;
default :
System.out.println("연산이 불가능합니다.");
}
System.out.println(result);
// if (count == 10) {
// for (int i = 1; i < 10; i++) { // 1칸씩 땡길꺼라 1부터 돌린다.
// results[i - 1] = results[i];
// }
// results[9] = result;
// } else {
// results[count++] = result;
// }
// 결과를 ArrayList에 저장
results.add(result);
// remove 입력시 삭제
System.out.println("가장 먼저 저장된 연산 결과를 삭제하시겠습니까? (remove 입력 시 삭제)");
if(sc.nextLine().equals("remove")){
results.remove(0);
}
System.out.println("저장된 연산결과를 조회하시겠습니까? (inquiry 입력 시 조회)");
String inquiry = sc.nextLine();
// iter -> 향상된 for 문 자동완성 키
if (inquiry.equals("inquiry")) {
for (Integer i : results) {
System.out.println(i);
}
}
System.out.println("더 계산하시겠습니까? (exit 시 입력종료)");
String end = sc.nextLine();
if (end.equals("exit")) {
break;
}
}
}
}
while (조건문) { 연산 }
(조건문) = true 인 동안에, { 연산 } 을 수행하며 while 문을 반복
System.out.println( "첫 번째 숫자를 입력하세요 : ");
// "첫 번째 숫자를 입력하세요 : " 를 출력
int num1 = sc.nextInt();
변수 num1(정수형)을 선언하고, 입력받은 값(Int 형)을 대입
System.out.println("두 번째 숫자를 입력하세요 : ");
// "두 번째 숫자를 입력하세요 : " 를 출력
int num2 = sc.nextInt();
변수 num2(정수형)을 선언하고, 입력받은 값(Int 형)을 대입
System.out.println("사칙 연산 기호를 입력하세요 : ");
char operator = sc.next().charAt(0);
입력받은 값의 0번째 문자를 변수 operater (문자형)에 대입
sc.nextLine();
엔터 값을 입력받음
int result = 0;
변수 result 값을 선언하고, 0을 대입(초기화)
switch문 = switch (피연산자) { case (조건) : (연산) }
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case'*':
result = num1 * num2;
break;
case'/':
result = num1 / num2;
break;
case'%'
result = num1 % num2;
break;
default :
System.out.println("다시 입력해주세요.");
}
System.out.println(result);
// break; 해당 case의 연산문이 끝났다는 것을 알려주어서 switch문을 종료
// default: (연산) => 아무 것도 만족하지 않을 때 수행, 없다는 생략 가능
result.add(result);
변수 result (연산의 결과값)을 ArrayList (컬렉션) 에 저장
System.out.println( " 가장 먼저 저장된 연산 결과를 삭제하시겠습니까? (Remove 입력시 삭제) " );
if(sc.nextLine().equals("remove")){
results.remove(0);
}
// 입력받는 값이 "remove" 일 때, results (배열)에서 0번째 값을 삭제
System.out.println( " 저장된 연산결과를 조회하시겠습니까? (inquiry 입력 시 조회) " );
String inquiry = sc.nextLine();
// 변수 inquiry (문자열)을 선언
// 입력되는 값을 변수 inquiry 에 대입
// iter -> 향상된 for 문 자동완성 키
if (inquiry.equals("inquiry")){
for (Integer i : results) {
System.out.print(i);
}
}
// 변수 inquiry 에 입력된 값(문자열)이 "inquiry" 라면, for 문을 수행
// 향상된 for 문 (foreach 문) = for ( 변수타입 변수명 : 배열 ) { 연산 }
// for 의 (조건)을 만족하는 동안 {연산}을 수행
// {연산} = 변수 i 값을 출력
System.out.println(" 더 계산하시겠습니까? " (exit 시 입력 종료)" );
String end = sc.nextLine();
// 개행문자가 입력되기 전까지의 값(문자열)을 변수 end 에 대입(저장)
if (end.equals("exit"){
break;
}
// 변수 end 값이 "exit" 와 같다면, while문을 break;