명령줄 인수
명령줄 인수는 프로그램을 실행할 때 함께 전달되는 값들로, main(String[] args) 메서드의 args 배열에 저장된다.
JVM은 프로그램 시작 시점에 String[] args를 생성하며, 명령줄 인수로 배열의 크기와 내용을 결정한다.
- 인수를 전달하지 않은 경우: args는 크기가 0인 빈 배열.
- 인수를 전달한 경우: args 배열에 인수 값들이 순서대로 들어감.
cmd에 java MyProgram Hello World 를 실행 했을 때
args[0]=Hello
args[1]=World
이렇게 args배열에 저장됨.
IntelliJ IDEA에서 실행 구성 설정 방법
String[] args은 정적 배열이지만 IDE를 이용해 인수를 설정 할 수 있음
사용자가 IDE 실행 구성에서 프로그램 인수를 설정하면, IDE는 설정된 인수를 JVM에 전달.
명령줄에서 직접 인수를 전달한 것과 동일한 효과


public static void main(String[] args) {
System.out.println(args[0]);
//형변환
int count = Integer.parseInt(args[0]);
int num = 0;
while (true){
System.out.println(++num);
if(num == count){
break;
}
}
}
}
args[0]=10, args배열은 String 배열이므로 Intger클래스의 parseInt()를 이용해 문자열을 int형으로 형변환
☆ parseInt()는 숫자인 String만 정수로 바꿀수 있음
주석
- // 한줄 주석
- /* */ 여러줄 주석
- /** */ 문서화( Javadoc )주석
주요태그
| @author | 작성자 이름 |
| @version | 버전 정보 |
| @param | 메서드의 매개변수 설명 |
| @return | 메서드의 반환 값 설명 |
| @throws | 메서드가 던질 수 있는 예외 설명 |
주석 단축키
- 라인 주석: Ctrl + / (Windows/Linux), Cmd + / (Mac)
- 블록 주석: Ctrl + Shift + / (Windows/Linux), Cmd + Shift + / (Mac)
자료형 타입
- 기본형 타입 (primtive type): 논리형(boolean), 정수형(byte, short, int, long), 실수형(float, double), 문자형(char)
- 레퍼런스형 타입 (reference type): 기본형을 제외한 나머지 타입
논리연산자
and(&&) 와 or (||)
두가지 조건을 모두 만족해야하는 경우 &&사용, 하나의 조건만 만족해도 되는경우 || 사용
boo = b > 200 && i++ > 5 ;
b>200이 거짓일 경우 i++ > 5 는 실행 되지 않는다, i++ > 5를 실행 하고 싶은 경우에는
boo = b > 200 & i++ > 5 ;
&&에서&로 변경한다 ||와 |의 경우도 동일하다.
^ (exclusive-or 또는 XOR)
두개의 값이 같을 경우 0(true), 다를 경우 1(false)
! (부정 연산자)
논리값을 부정
true이면 false, false이면 true
오버플로우(overflow)
계산결과가 최댓값을 넘거나 최소값보다 적을경우 양수는 음수로, 음수는 양수로 바뀌는 문제
타입의 변환
정수 → 실수 대입은 문제 없음: 묵시적 타입 변환(자동 타입 변환, implicit conversion)
실수 → 정수 대입은 실수는 정수를 포함하지만 정수는 실수를 포함하지 않으므로 오류 발생함.
형변환이 필요하다
int i1 = (int)50.0;
int i2 = (int)25.6f;
변환하고자 하는 숫자 앞에(타입)을 명시한다.
소수점 이후는 잘린다
이를 명시적 타입 변환(강제 타입 변환, explicit conversion)이라고 함
short s = 5;
int i = s;
long x = i;
System.out.println(i);
System.out.println(x);
크기가 큰 타입은 작은 타입을 저장할 수 있음
- long 타입의 변수는 byte, short, int 타입의 값을 저장할 수 있다.
- int 타입의 변수는 byte, short타입의 값을 저장할 수 있다.
- short 타입의 변수는 byte타입의 값을 저장할 수 있다
byte형 → short형 → int형 → long형 → float형 → double형
long x2 = 50;
int i2 = (int)x2;
크기가 작은 타입은 큰 타입을 저장할 수 없다→ 형 변환을 해야한다
반복문
for문
public class ForExam1 {
public static void main(String[] args){
for(int i = 0; i < 10; i++){
System.out.println("*");
}
}
}
*을 10번 출력
while문
public class WhileExam2 {
public static void main(String[] args){
int i = 1;
while(true){
if(i == 11) break;
System.out.println(i);
i++;
}
}
}
- 조건문이 참일 동안 반복함
- while(true){}는 무한루프 반복문, break를 만나 반복문 탈출
do-while문
public class DoWhileExam2 {
public static void main(String[] args){
int i = 1;
do{
System.out.println(i);
i++;
}while(i < 1);
}
}
while과 비슷, do-while문은 무조건 한번은 실행됨
조건문
if문
if(조건문1){
조건문1이 참일 경우 실행되는 블록
}else if(조건문2){
조건문2가 참일 경우 실행되는 블록
}else{
조건문1이나 조건문2에 해당되지 않을 경우 실행되는 블록
}
주의점
중괄호, 즉 블럭이 없을 경우, if 다음 문장만 조건에 만족할 경우 실행 됨
public class IfExam4 {
public static void main(String[] args){
int a = 10;
if(a > 5)
System.out.println("a는 10보다 큽니다.");
System.out.println("hello");
}
}
hello는 무조건 출력됨.
삼항연산자
조건식 ? 반환값1 : 반환값2
switch문
switch (변수) {
case 값1:
변수가 값1일때 실행된다.
break;
case 값2:
변수가 값2일때 실행된다.
break;
...
default:
변수의 값이 어떤 case에도 해당되지 않을 경우 실행된다.
}
- 여러개의 case를 가질 수 있음
- 하나의 default만 가질 수 있음
- break 생략 가능
public class SwitchExam4 {
public static void main(String[] args){
String str = "감자";
switch(str){
case "감자" :
System.out.println("감자입니다.");
break;
case "고구마" :
System.out.println("고구마입니다.");
break;
default :
System.out.println("감자와 고구마가 아닙니다.");
}
}
}
JDK 7이상에서만 switch에서 String타입을 사용할 수 있다.
'TIL' 카테고리의 다른 글
| 241210 [멋쟁이사자처럼 부트캠프 TIL 회고] Back-End school (2) | 2024.12.10 |
|---|---|
| 241209 TIL (2) | 2024.12.09 |
| 241206 TIL (1) | 2024.12.06 |
| 241205 TIL (0) | 2024.12.05 |
| 241204 TIL (1) | 2024.12.04 |