초를 입력 받아 입력받은 초가 몇시간 몇분 몇초인지 계산하기.

3600초 : 1시간, 60초 : 1분

 

3600초는 1시간

60초는 1분

60으로 나누고 60(시간)으로 나눈 나머지 값이 분.

초는 60(분)으로 나눈 값들.

5930초가 저게 맞나 몰라서 걍 3600초로 해봤다.

정수를 입력 받아 1의 자리에서 절삭한 값과, 1의 자리에서 반올림한 값을 출력하는 프로그램.

 

실행 예

정수 ? 1267

반올림 결과 : 1270

절삭한 결과 : 1260

 

1의 자리에 +5를 하면 십의 자릿수가 올라가거나 그대로가 된다. 그때 10으로 나누면 1의 자리에 있던 숫자들이 사라지고 (int는 정수형이기 때문) 그 후에 다시 10을 곱해서 원래의 숫자수로 맞춘다. 

 

절삭한 결과는 그냥 10으로 나눠서 1의 자리 숫자들을 없애고 다시 10을 곱한다.

boolean 자료형은 1byte 이다.

C언어와 다르게 0, 1로 설정하는 것이 아닌 true, false로 설정해야한다.

 

b = 0;

b = "false"; 둘 다 컴파일 오류가 발생한다.

 

b = true;

b = false; 로 설정해야한다.

 

여태까지 자료형에 대해 알아보았다.

기본자료형은 8가지가 있다.

정수형은 byte(1byte -128~127까지표현), short(2byte), int(4byte. -21억~21억까지 표현) , long(8byte)이 있다.

문자형은 char(2byte)이 있다.

실수형은 float(4byte), double(8byte)이 있다.

마지막으로 boolean 이 있다.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex10_Operator  (0) 2021.07.04
0702_Ex09_String  (0) 2021.07.04
0702_Ex07_DataType  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04
0702_Ex05_DataType  (0) 2021.07.04

 

\u0041은 16진수 유니코드를 의미하는 것이다. (즉 16진수 0041은 10진수로 65)

c = '\101'; //8진수 유니코드를 나타냄. (8진수 101은 10진수로 65)

\ 출력을 위해서는 \\를 쳐야함(두 번)

char는 유니코드는 6만 5천개 정도를 표현할 수 있다. 따라서 만약

c = 70000; 는 오류가 남.

c = a;로 하면 컴파일 오류가 나는데 char는 int에 넣을 수 없기 때문이다.

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex09_String  (0) 2021.07.04
0702_Ex08_boolean  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04
0702_Ex05_DataType  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04

실수형 자료형, 리터럴, 형 변환

float 는 단정도형 실수를 표현하는 자료형으로 4byte

double 은 배정도형 실수를 표현하는 자료형으로 8byte

a = 0;을 넣으면 int는 float로 자동 변환되어 저장이 된다.

a = 0.5f; 는 f를 붙여서 리터널을 표시해준 것이다.

char는 float에 대입할 때 자동으로 float로 형 변환이 된다. A의 값은 65.

 

double 을 float에 넣으려면 형 변환 (float)를 해줘야 한다.

 

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex07_DataType  (0) 2021.07.04
0702_Ex06_Precision  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04

이번에는 자료형에 대해서 알아보겠다.

byte 는 -128에서~127까지 나타내는 자료형이다.

1byte 는 8비트로 표현하는데 1비트는 부호를 나타내고 나머지 7비트로 숫자를 나타내기 때문에 -128~127를 나타낼 수 있는 것

 

따라서 

b2 = 200; 을 주면 표현 범위를 벗어나기 때문에 표현할 수 없다.

 

short 타입은 2byte 자료형이다. 

문자 A는 65를 나타냄.

c는 아스키 코드값으로 99를 나타낸다.

 

char는byte와 비교불가함!!

문자는 단 한 개를 말하는 것이고 ''으로 표현함. 문자열은 0문자 이상을 말하고 ""로 나타냄.

 

int 타입은 4byte자료형이다.

자바는 int형이 연산을 위한 기본 타입이다.

b2 = i1; 컴파일 오류가 발생한다. 큰 자료형(int 4byte)은 작은 자료형(byte 1byte)에 대입이 불가하다.

b2 = (byte)i1; 처럼 int를 byte로 형 변환을 시키면 대입할 수 있다. 하지만 i1의 값은 150이므로 표현값(-128~127)을 넘어가기 때문에 overflow가 발생한다. 즉 150은 1001 0110인데 앞에 1은 부호를 나타내는 것이고 음수를 컴퓨터가 저장할 때는 2의 보수로 저장하기 때문에 1110 1010으로 저장이 되는 것. 그래서 -106가 나옴.

 

'1' 문자 1을 말하는 것이기 때문에 해당 숫자는 49이고 '3'은 문자 3이기에 51. 따라서 i3은 100이 나온다.

ㅇ'c'는 99.

 

long은 8byte 자료형이다.

 

long a1 = 10; 이면 int를 long에 대입하는데 작은 자료형은 큰 자료형에 대입할 수 있음. 자동으로 형 변환이 일어난다.

long a2 = 2300000000; 를 넣으면 컴파일 오류가 생기는데, int형의 범위를 벗어나기 때문이다. int형은 4byte로 32비트로 표현할 수 있는 숫자가 대략 -21억~21억 이기 때문임. 

따라서 a2 = 2300000000L; 을 붙이면 long 리터널로 표현해야한다.

리터럴은 그 값이 한 번 정의되면 프로그램이 실행되는 도중에 변하지 않는 값을 말함.

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex05_DataType  (0) 2021.07.04
0702_Ex04_Literal  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03
0701_Java print문  (0) 2021.07.03

여기서는 nextLine 에 대해서 알아보았다.

nextline은 공백을 읽을 수 있다. 또, 엔터를 읽고 버리는 역할을 한다.  nextInt는 숫자를 입력 받는다.

따라서 위 코드를 실행했을때. 나이를 적고 엔터를 치면 생년월일 ? 을 묻는 질문에 엔터가 입력이 되는 것. 

이렇게 된다.

따라서 나이를 받은 후에 엔터를 입력받은 것을 버려주는 nextLine을 넣어주어야 한다. 

 

age = nextInt();

이 후에 엔터를 읽고 버려주는

sc = nextLine(); 을 써 넣어준다.

 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex01_Scanner.java  (0) 2021.07.03
0701_Java print문  (0) 2021.07.03
0701개강 첫 날_Java Print문  (0) 2021.07.02

오늘은 이것저것 진도를 많이(?)나갔다. 

Scanner는 키보드의 입력을 받게 해준다.

위에 import java.util.Scanner;이 들어가 있어야 된다. 

사용자의 이름, 나이, 성별, 키를 입력받아 표시하도록 해보았다.

키보드로 입력을 받아 화면에 표시하는 것을 배웠다.

마지막에는 sc.close(); 를 꼭 붙여야 함.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0702_Ex04_Literal  (0) 2021.07.04
0702_Ex03_DataType  (0) 2021.07.04
0702_Ex02_Scanner.java  (0) 2021.07.04
0701_Java print문  (0) 2021.07.03
0701개강 첫 날_Java Print문  (0) 2021.07.02

+ Recent posts