KOSTA 2일차) 조건문 / 반복문 / scanner

해버니·2023년 2월 19일
0

KOSTA

목록 보기
16/32
post-thumbnail

복습

  • 자바코드는 모두 클래스 안에 있어야 함
  • main()에서 시작
  • 파일명은 public 클래스명과 같아야 한다.
  • ~.java → ~.class
    여기서 class는 컴파일이 완료된 것이다.
    .java: 사람의 언어
    .class: 컴파일이 완료된 컴퓨터의 언어

제어문 : 코드의 흐름을 제어하기 위해, 자연스럽게 흘러가게 하기 위해서 존재



❓자바가 바이트로 번역하는 이유❓

c++을 본따서 만든게 java이다.
c++는 운영체제에 따라서 실행 결과가 다르다.
리눅스 ↔ 윈도우 여기서 돌아가던 코드가 저기서는 돌아가지 않는다.
어디선 돌아가고 어디선 돌아가지 않으면 사용자는 좋아하지 않음

서로 돌아가게 하기 위해서 자바에서 바이너리가 아닌 바이트로 번역
OS가 달라도 동일하게 소스가 돌아간다
단점은 속도가 느리다 (처리과정이 들어가기 때문)




③ 제어문

프로그램의 흐름을 제어하는 것

정해진 횟수를 반복 : for문
횟수가 가변일 때 : while문



1) 조건문 : 조건을 따져서 특정 문장을 실행 할지 말지 결정

if문, if-else문, if-else if-else문, switch문




❓ ‘==’로 문자 비교 ❓

그렇게 되면 이 문자열의 참조값(아마도 주소값만 비교한다)만 비교
스펠링 하나 하나를 비교하는게 아니다
문자열 상수의 참조값? 으로 비교하기 때문에 정확하지 않다

그럼 어떻게 해야 돼?
equals를 쓰면 된다!



2) 반복문


switch문

switch(비교대상) {
   case 1:
      실행문;
      break; // 블록 빠져나감
   case 1:
      실행문;
      break; // 블록 빠져나감
   case 1:
      실행문;
      break; // 블록 빠져나감
   default:
      실행문;
}




① for

줄넘기 세는 것과 유사
연필로 써가면서 연습해보기
규칙성을 잘 따져보기


무한 루프

for( ;; ){
   실행문;
}

0번 루프

for ( i=0; i<5; i-- ) {
   System.out.println("한 번도 실행 안 됨");
}

루프(블록) 안에서 선언한 변수는 밖에서는 사용이 안 된다.




② while


③ do-while
do {
실행문;
} while( 조건 );



④ 기타 제어문

  • break문
    루프나 블록을 빠져나감

  • continue문
    루프를 진행함
    다음 루프로 넘어간다

  • return문
    현재 메서드 종료





Scanner

입력에 사용할 스캐너 장치를 생성

Scanner sc = new Scanner(System.in);
표준 입력을 치면 Scanner가 스캔해준다.
System.in : 표준입력 (키보드)

Scanner는 데이터 타입이다 (int, float, char, String처럼)
타입인데 우리가 만든 클래스가 아니라 api로 제공해주는 것
(근데 클래스 파일은 변수를 만드는게 조금 더 복잡)
(나중에 클래스 배울 때 더 자세히 설명)



변수 옆에 괄호가 있으면 메소드이다.
(main(), scanner() 등등)
메소드는 기능을 제공해주는 친구이다.



java.util.Scanner sc = new java.util.Scanner(System.in);

위 문장은 자바-유틸에 있는 스캐너를 뜻한다.
이렇게 풀네임으로 쓰면 오류가 나지 않는다.
패키지 = 폴더랑 비슷하다고 생각하면 된다.
풀네임을 쓰기엔 귀찮으니 import만 하는 것이다.



① sc.next()
스페이스 치기 전까지 입력을 받아들이는 메소드 (단어만)

② sc.nextInt()
정수 한 개 읽는 메서드





단축키

주석 처리

Ctrl + Shift + C






0개의 댓글