<함수 만들고 불러와서 사용>
public class Main2 {
final static double PI=3.141592; //final 상수형
public static void main(String[] args) {
int r = 30; //반지름
System.out.println(r * r * PI); //원의 넓이 구하기
}
}
final static double PI=3.141592;
상수형을 함수로 만듦
상수형 = PI 대문자
<오버플로우(overflow) 현상>
public class Main3 {
final static int INT_MAX = 2147483647; //변하지 않는 상수
public static void main(String[] args) {
int a = INT_MAX; //상수를 안에 넣음
System.out.println(a); //a 숫자를 넣음
System.out.println(a + 1); //overflow
/*
* int는 2147483647 이상 저장할 수 없어서 넘쳐 흘렀고
* overflow 현상이 일어남
*/
}
}
int형의 경우 담아 낼 수 있는 숫자가 21474835647까지이다. 그러니 1이라도 초과가 되면 오버플로우 현상(넘쳐흐르다)이 일어난다. 때문에 엉뚱한 값이 출력된다.
<형변환>
public class Main4 {
public static void main(String[] args) {
double b = 0.5;
int a = (int)(b + 0.5);
//1.0을 int에 넣고싶은데 double이 데이터 크기가 커서
//(64bit=8byte) int형변환을 해줬음
System.out.println(a);
}
}
double = 8byte
int = 4byte
int 안에 1을 넣기엔 충분하지만 double 데이터 크기가 커서 받아들이지 못 한다. 때문에 (int) 형변환을 해주고 넣어주면 끝!
<연산자 우선순위>
public class Main5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a = 10.3;
double b = 9.6;
double c = 10.1;
System.out.println((a+b+c) / 3);
//연산자 우선순위
//답이 10.0인 이유 실수형이라서
}
}
실수형 값들을 계산하려고 한다. (괄호) 안에 넣지 않았다면 c/3부터 했을텐데 (a+b+c) 안에 넣어줘서 더하기 먼저 하고 3으로 나눴다.
<a부터 z까지 출력>
public class Main6 {
public static void main(String[] args) {
for(char i='a'; i<='z'; i++) {
System.out.print(i + " ");
}
}
}
앞으로 많이 사용하게 될 반복문(for)
<10진수 8진수 16진수>
public class Main7 {
public static void main(String[] args) {
int a = 200;
System.out.println("10진수 : " + a);
System.out.format("8진수 : %o\n", a); //%o는 8진수, \n은 줄바꾸기
System.out.format("16진수 : %x", a); //%x는 16진수
}
}
10진수 -> 8진수 : %o (소문자 o)
10진수 -> 16진수 : %x
\n 줄바꿈
System.out.format -> .println 아니니까 주의!
<문자열 자르기>
public class Main8 {
public static void main(String[] args) {
String name = "John Doe";
System.out.println(name);
System.out.println(name.substring(0, 1));
System.out.println(name.substring(3, 6));
System.out.println(name.substring(5, 8));
System.out.println(name.substring(0, 4));
// substring 칼로 a부터 시작해서 b까지 잘라라
}
}
name.substring(0, 1)
name의 0부터 1까지 자르기 = J
name.substring(3, 6)
name의 3부터 6까지 자르기 = n D
name.substring(5, 8)
name의 5부터 8까지 자르기 = Doe
<연산자 복습>
public class Main9 {
public static void main(String[] args) {
int a = 50;
int b = 50;
System.out.println("a와 b가 같은가요? " + (a == b));
System.out.println("a가 b보다 큰가요? " + (a > b));
System.out.println("a가 b보다 작은가요? " + (a < b));
System.out.println("a가 b와 같으면서 a가 30보다 큰가요? " + ((a == b)&&(a > 30)));
System.out.println("a가 50이 아닌가요? " + !(a == 50));
System.out.println("a가 50이 아닌가요? " + (a != 50)); //이걸 더 많이 씀
}
}
<함수 선언-삼항연산자>
public class Main10 {
public static void main(String[] args) {
int x = 50;
int y = 60;
System.out.println("최대값은" + max(x,y) + "입니다.");
//max라는 함수를 부른다. (x,y = 인수)
}
//함수를 만듭니다.
//반환형, 함수이름, 매개변수
static int max(int a, int b) { //더블로 바꾸면 실수도 받을 수 있음
int result = (a > b)? a : b;
return result;
}
}
함수를 만들 때 필요한 것은 반환형, 함수 이름, 매개 변수이다. Jquery에서 사용할 때 처럼 functio 대신 static으로 써준다. 두 개를 부르면 두 개를 선언하는 게 법칙이다.
'개발일지 > Java + Spring' 카테고리의 다른 글
[java] 문자열 비교 메소드 3가지(대소문자 구별?) (0) | 2021.09.16 |
---|---|
[java] 객체 설명과 Scanner 객체 불러와서 사용 (0) | 2021.09.16 |
[java] if-else문(로그인처리) (0) | 2021.09.15 |
[java] 연산자 모음 (0) | 2021.09.15 |
[Java] 기본용어 정리 (0) | 2021.09.15 |