간단한 문제
7451초를 "??시간 ??분 ??초 입니다."로 출력하기
내가 생각한 방법:
second = minute * 60 = hour * 3600
hour = time / 3600
minute = (time % 3600) / 60
second = time - ( hour * 3600) - ( minute * 60)
선생님의 답안:
논리적으로 생각하게 함
100초를 1분 40초 라고 생각하는 이유는 100초를 60초로 나누면 몫 1에 나머지 40이 생김
7451초를 분-초 로 계산하기 위해서는 분이 몫을 가져가고, 초가 나머지를 가져간다고 생각하면 됨
하지만 시간-분-초 로 계산하려면 위에 방법으로 하면 안됨
→ 시간을 계산하고 분을 계산할때 앞에서 계산된 시간을 제외해야함
초는 60으로 계산하고 남은 나머지는 60보다 큰 수가 나올 수 없기 때문에 60의 나머지로 계산
System.out.printf에서 printf는 특정한 형태로 출력됨을 알려주는 것_변수와 문자열을 함께 출력할 때 사용하기 편함
- %d: 정수
- %s: 문자
- %n: 줄넘김(\n과 같은 의미이지만, 운영체제 상 %n을 사용하는 것이 좋음)
위의 문장은
과 같은 의미이지만 작성하기에 더 편함
예시)
사용자에게 입력 받기
사용자에게 무언가 물어보고 입력받기 위해서는 Scanner를 사용
class 문법: 대문자로 시작하는 데이터 타입은 '변수명 = new 데이터 타입명()'으로 작성
Scanner sc = new Scanner( );
String s = new String( ); → String s = " "; 도 가능
Scanner(API_첫글자가 대문자로 시작): Scanner를 사용한다고 선언 - Scan 할 대상이 필요함
Scanner: 데이터 타입
sc: 변수명(참고_sc.: 'Scanner를 통해서' 라는 의미)
import: 클래스의 위치를 알려주는 것(+ Scanner를 사용하기 위해 외부 클래스를 호출하는 것이라고 함: 다른 블로그에서 읽은 내용)
Scanner를 통해서 입력받게 해야함 → Scanner에 명령을 내림
next( ): 문자열을 입력 받음
nextInt( ): int 정수값을 입력 받음
String name = sc.next( ): Scanner를 통해서 변수에 저장
→ 사용자가 입력을 하고 enter를 입력하면, 컴퓨터는 사용자의 이름을 문자열로 인식하면서 읽음_enter 전 까지
이후, sc.next( ) 괄호 내부에는 enter 값만 남고, 읽을 수 있는 다른 내용이 들어올 때까지 멈춤(읽을 수 있는 값이 없기 때문에)
Scanner를 통해서 간단한 문제 변형
사용자에게 초를 입력받아 문제를 해결
'Java 및 JSP' 카테고리의 다른 글
사전수업 Day3: Java 반복 제어문1 (0) | 2021.05.31 |
---|---|
사전수업 Day3: Java 조건 제어문 (0) | 2021.05.31 |
사전수업 Day2: Java 연산자 (0) | 2021.05.24 |
사전수업 Day1: Java 기초문법 (0) | 2021.05.16 |
사전수업 Day1: Java Eclipse (맥북 한글 깨짐 문제해결) (0) | 2021.05.16 |