241203 TIL

2024. 12. 3. 17:30·TIL

명령줄 인수

명령줄 인수는 프로그램을 실행할 때 함께 전달되는 값들로, 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에 전달.

명령줄에서 직접 인수를 전달한 것과 동일한 효과

Edit Configurations 메뉴에서 실행 구성 선택.
Program Arguments 필드에 원하는 값 입력

 

    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
'TIL' 카테고리의 다른 글
  • 241209 TIL
  • 241206 TIL
  • 241205 TIL
  • 241204 TIL
Jiyuuuuun
Jiyuuuuun
  • Jiyuuuuun
    Hello, World!
    Jiyuuuuun
  • 전체
    오늘
    어제
    • 분류 전체보기 (112)
      • TIL (56)
      • CS (17)
        • Network (4)
        • Algorithm (10)
      • JAVA (5)
      • Project (10)
        • HakPle (3)
        • JUSEYO (4)
      • Spring (2)
      • C (3)
      • C++ (16)
      • Snags (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    back-end
    JDBC
    springboot
    front-end
    hakple
    javascript
    react
    SQL
    멋쟁이사자처럼
    CSS
    HTML
    부트캠프
    Docker
    JPA
    nginx
    node.js
    my_favorite_place
    java
    db
    Kubernetes
    juseyo
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Jiyuuuuun
241203 TIL
상단으로

티스토리툴바