자바 문법 한눈에 정리 1편
자바는 학교에서 많이 배웠지만 뭔가 한번에 정리가 안된 느낌이라 코딩시 사용 가능한 문법에 한 해 정리해보고자 함
main
main 메서드에서 제일 먼저 시작
public class Main{
public class void main(String[] args){
}
}
println
결과값을 내주는 함수, 문자열, 숫자, 수식, 변수, 변수에 수식도 사용 가능
참고로 변수는 값을 지정하고 다시 갱신 가능
public class Main{
public class void main(String[] args){
int x =30; //변수
System.out.println("Hello World"); //문자열
System.out.println(35 + 30); //수식
System.out.println(x + 30); //변수의 수식
x = 40;
System.out.println(x); // x 값은 위와 상관없이 40으로 초기화
}
}
final
값을 변경하기 싫을 때 사용하는 것, 상수
public class Main{
public class void main(String[] args){
final int y = 30;
y = 40; //에러가 뜨게 됨
}
}
데이터 타입 + 리터럴
public class Main{
public class void main(String[] args){
int x = 30;
long l = 30L; //int보다 더 큰 숫자를 표현하기 위함, 뒤에 시호를 붙여줌
short s = 30; //int보다 작은 숫자
byte b = 30; //short보다 더 작은 숫자
//실수
double dd = 30.0; //double이 float보다 더 넓은 범위의 실수를 담을 수 있음
float ff = 30.0f;
//참, 거짓(if문에서 주로 사용)
boolean isMarred = ture;
isMarried = false;
//문자열
char c ='a' //한글자만
char cc = '한'
//문자열 여러개,주로 사용
String str = "여러, 글자"
System.out.println(x);
}
}
자동 형변환(강제, 자동)
public class Main{
public class void main(String[] args){
int x = 30;
long l = 30L; //int보다 더 큰 숫자를 표현하기 위함, 뒤에 시호를 붙여줌
short s = 30; //int보다 작은 숫자
byte b = 30; //short보다 더 작은 숫자
int i = (int)30L; //오른쪽에 있는 long이 더 크기 때문에 **강제형 변환**(int)를 앞에 넣어줌
long ll = 30; //작은 값이 큰 상자에 들어감 , **자동형변환**
//실수
double dd = 30.0; //double이 float보다 더 넓은 범위의 실수를 담을 수 있음
float ff = 30.0f;
dd = ff; //자동형변환
ff = (float) dd; //강제 캐스팅하여 형변환**[큰 타입이 작은 타입에 들어갈 때]**
//참, 거짓(if문에서 주로 사용)
boolean isMarred = ture;
isMarried = false;
//문자열
char c ='a'; //한글자만
char cc = '한';
//문자열 여러개,주로 사용
String str = "여러 글자";
}
}
문자열 포맷
public class Main{
public class void main(String[] args){
//문자열 여러개,주로 사용
String str = "여러 글자";
System.out.printf("저는 %s입니다. 나이는 %d살이고요, 키는 %fcm입니다.\\n","홍길동", 20, 180.5f); //뒤에 인자를 넣어줌
String str2 = String.format("저는 %s입니다. 나이는 %d살이고요, 키는 %fcm입니다.","홍길동", 20, 180.5f);
System.out.println(str2);
}
}
Math
public class Main{
public class void main(String[] args){
System.out.println(Math.max(10,30)); //큰 수 출력 30
System.out.println(Math.min(10,30)); //작은 수 출력 10
System.out.println(Math.min(-30)); //절대값 출력 30
}
}
문자열 숫자 상호 변환
public class Main{
public class void main(String[] args){
String str = "100";
int i = Integer.parseInt(str); //숫자로 변환 출력시 100
long l = Long.parseLong(str); //long으로 변환 출력시 100
String str2 = String.valueOf(i); //숫자를 다시 문자열로 변환 "100"
System.out.println(i);
System.out.println(str2);
}
}
Random
public class Main {
public static void main(String[] args) {
Random random = new Random();
int rand = random.nextInt(10); //10까지 중 하나를 랜덤
// 0 ~ 9 => 5 ~14
// 5 ~ 9 4개 중 하나를 랜덤으로 뽑고 싶어
int randd = random.nextInt(4)+5; //5~9
System.out.println(rand);
System.out.println(randd);
}
}
키보드 입력
문자열 입력을 받는 경우, 자바를 가지고 알고리즘을 푼다는 등
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); //문자열
int i = scanner.nextInt(); //숫자
long l = scanner.nextLong(); //long
System.out.println(scanner.next()); //string을 받겠다. 문자열을 입력을 치면 출력
}
}
If 문
public class Main {
public static void main(String[] args) {
int i = 4;
if(i<3){ //3보다 작은 수
System.out.println("참");
} else if (i<5) { //3이상 5미만
System.out.println("거짓");
} else{ // 5이상
System.out.println("나머지");
}
}
}
삼항연산
public class Main {
public static void main(String[] args) {
boolean isMarred = true;
String str; //결혼을 했다 안했다 라는 문자를 담음
str = isMarred? "결혼했다" : "결혼을 안 했다"; // **str = 조건?참:거짓**
System.out.println(str); //결혼했다
}
}
위의 삼항 연산을 if문으로 나타내자면
public static void main(String[] args) {
boolean isMarred = true;
String str; //결혼을 했다 안했다 라는 문자를 담음
if(isMarred){
str = "결혼 했다";
} else {
str = "결혼 안 했다";
}
System.out.println(str); //결혼했다
}
논리연산, 부정연산
AND, OR, NOT
isMarred && isMan //AND 둘 다 맞아야 함
isMarred || isMan // OR 둘 중 하나
isMarred || !isMan // !을 앞에 붙이면 NOT 참이 거짓이 되고 거짓이 참이 됨
Switch 문
public class Main {
public static void main(String[] args) {
String str; //결혼을 했다 안했다 라는 문자를 담음
switch (str){ //boolean은 조건으로 들어가지 못함 switch(조건)
case "결혼 했다" : // case ___ :
System.out.println("O"); //출력
break; //break를 안쓰면 쓱 빠져나옴 꼭
case "결혼 안 했다" :
System.out.println("X");
break;
default: //마지막에 default
System.out.println("?");
}
System.out.println(str);
}
}
반복문 - For 문
반복문이 필요한 이유
반복문은 프로그래밍에서 가장 중요한 요소 중의 하나다. 인간은 반복적인 작업을 할때 실수하고 지루해한다. 그것은 실수로 이어진다. 컴퓨터는 이런 반복적인 작업을 대행하기 위해서 만들어진 기계다. 반복문은 컴퓨터에게 반복적인 작업을 지시하는 방법
for(int i =0; i<10; i++){
//for(초기화; 변수의 조건; 블럭을 한 번 실행 후 어떻게 변화할 것인지)
System.out.println(i);
}
While 문
int i =0; //초기화
while (i<10){ //while(조건문)
System.out.println(i);
i++;
}
Do-While문
int i=0; //초기화
do{
System.out.println(i);
i++;
}while(i<10); //while(조건) 무조건 1번은 실행함
Break문
멈추고 싶을 때 사용
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) { //for(초기화; 변수의 조건; 블럭을 한 번 실행 후 어떻게 변화할 것인지)
System.out.println(i);
if(i == 6){
break; //**6을 만나면 for문이 멈춤**
}
}
}
Countinue문
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) { //for(초기화; 변수의 조건; 블럭을 한 번 실행 후 어떻게 변화할 것인지)
System.out.println(i);
if(i == 6){
continue; //**6만 빼고 출력됨** if문의 조건만 빼고 출력해라
}
}
}
}
배열 및 예외
똑같은 타입의 변수를 여러개 가져야 할 때 유용함
public class Main {
public static void main(String[] args) { //배열은 원래 초기화가 모두 0으로 되어있음
int[] score = new int[]{10,20,30,40,50}; //초기화와 같이 선언도, 5개의 변수를 가짐, 변수 값을 넣어줌
int count = score.length; //length : 배열의 길이를 알려줌
System.out.println(count); //5가 출력
System.out.println(score[0]); //출력값 10
}
}
int[] score = new int[5]; //5개의 변수를 가짐
int[] score = {10, 20, 30, 40, 50} //= int[] score = new int[]{10,20,30,40,50};
인덱스는 1부터가 아닌 0부터 이다. 즉, 10은 인덱스 0 20은 인덱스 1 이런식이다. 변수의 개수 - 1이 최종 인덱스 번호
System.out.println(score[score.length -1 ]);
null과 NullPointerException
NullPointerException의 경우, null인 값을 참조시 뜨는 에러
public class Main {
public static void main(String[] args) { //배열은 원래 초기화가 모두 0으로 되어있음
String[] names = new String[2];
System.out.println(names[0]); //변수의 값을 넣어주지 않아 문자열은 null이 뜸
System.out.println(names[0].length()); //nullPointerExcepion이라는 에러가 뜸
}
}
ArrayList
자바의 List 인터페이스를 상속받은 여러 클래스 중 하나
일반 배열과 동일하게 연속된 메모리 공간을 사용
배열과의 차이점은 배열이 크기가 고정인 반면 ArrayList는 크기가 가변적으로 변화함
사용 이유 : 중간에 값을 변동하기가 쉽다.
내부적으로 저장이 가능한 메모리 용량(Capacity)이 있으며 현재 사용 중인 공간의 크기(Size)가 있다.
만약 현재 가용량(Capacity) 이상을 저장하려고 할 때 더 큰 공간의 메모리를 새롭게 할당한다.
public class Main {
public static void main(String[] args) { //배열은 원래 초기화가 모두 0으로 되어있음
ArrayList<Integer> scoreList = new ArrayList<>(); //타입 지정
scoreList.add(10); //변수의 값을 넣어줌
scoreList.add(20);
scoreList.add(30);
scoreList.add(40);
scoreList.add(50);
scoreList.add(2,200); //2번째 인덱스에 200으로 바꾸고 싶다다
scoreList.remove(2); // 그 전에 있던 값을 뺀다. remove
System.out.println(scoreList.size()); //arrayList의 크기 5
System.out.println(scoreList.get(3)); // 인덱스 사용
}
}
Last updated