기본 콘텐츠로 건너뛰기

방송대 방통대 Java프로그래밍 2강 - Java 기본 문법(1) - 요약 노트 시험족보 예상문제 - 올에이클래스

Java프로그래밍 2강 - Java 기본 문법(1)

Java프로그래밍 2강 - Java 기본 문법(1)

Java 프로그램을 작성하려면 클래스와 객체의 기본 구조뿐 아니라 이름을 정하는 규칙, 자료형, 연산자와 실행 흐름을 함께 이해해야 한다. 이 글에서는 Java 프로그램의 구성부터 식별자·키워드, 변수와 리터럴, 형변환, 선택·반복·점프문까지 2강의 핵심 문법을 코드와 비교표로 정리한다.

1. Java 프로그램의 기본 구조

1.1 클래스를 나누어 작성하는 방법

Java 프로그램은 클래스의 집합으로 구성된다. 성적을 저장하고 출력하는 예에서는 Grade 클래스가 영어 성적과 수학 성적을 데이터 필드로 가지며, 점수를 입력하는 메소드와 합계를 출력하는 메소드를 제공한다. 실행을 담당하는 GradeOutput 클래스는 main() 메소드에서 두 객체를 생성해 각각 다른 점수를 저장하고 출력한다.

class Grade {
  int e; // 영어 성적
  int m; // 수학 성적

  void input_grade(int a, int b) {
    e = a;
    m = b;
  }

  void output_grade() {
    System.out.println(e + m);
  }
}

public class GradeOutput {
  public static void main(String args[]) {
    Grade g1, g2;
    g1 = new Grade();
    g2 = new Grade();

    g1.input_grade(90, 85);
    g2.input_grade(80, 80);
    g1.output_grade();
    g2.output_grade();
  }
}

g1g2는 같은 Grade 클래스로 만든 서로 다른 객체를 가리킨다. 따라서 각 객체의 em에는 독립적인 값이 저장된다. 이 코드는 데이터와 기능을 한 클래스에 묶고, 실행을 담당하는 클래스를 별도로 둘 수 있음을 보여 준다.

1.2 하나의 클래스에 기능을 모으는 방법

같은 기능을 반드시 두 클래스로만 작성해야 하는 것은 아니다. 다음과 같이 데이터 필드, 입력 메소드, 출력 메소드와 main()을 하나의 GradeOutput 클래스에 둘 수도 있다.

public class GradeOutput {
  int e;
  int m;

  void input_grade(int a, int b) {
    e = a;
    m = b;
  }

  void output_grade() {
    System.out.println(e + m);
  }

  public static void main(String args[]) {
    GradeOutput g1 = new GradeOutput();
    GradeOutput g2 = new GradeOutput();
    g1.input_grade(90, 85);
    g2.input_grade(80, 80);
    g1.output_grade();
    g2.output_grade();
  }
}
핵심: 클래스는 객체가 가질 데이터 필드와 수행할 메소드를 정의하는 틀이다. new로 객체를 생성하면 같은 클래스에서도 서로 독립적인 상태를 가진 여러 객체를 만들 수 있다.

2. 식별자와 키워드

2.1 식별자의 의미와 작성 규칙

식별자는 프로그래머가 클래스, 변수, 메소드, 레이블 등에 붙이는 이름이다. 다음 코드에서 HelloApplication, szMsg, main, args, nTest가 식별자에 해당한다.

public class HelloApplication {
  static String szMsg = "Hello, Java!";

  public static void main(String args[]) {
    int nTest = 0;
    System.out.println(szMsg);
  }
}
규칙설명
대소문자 구분scoreScore는 서로 다른 이름이다.myCar, MyCar
길이 제한 없음의미를 드러내는 범위에서 충분히 설명적인 이름을 쓸 수 있다.studentTotalScore
사용 가능한 문자영대소문자, 한글, 숫자, 밑줄, 달러 기호 등을 사용할 수 있다.점수, speed2, _count
첫 문자 제한숫자로 시작할 수 없다.2score는 잘못된 이름
사용 금지 이름키워드와 true, false, null은 식별자로 사용할 수 없다.class, false 사용 불가

2.2 관례에 맞는 이름

문법적으로 허용되는 이름이라도 Java의 관례를 따르면 코드의 역할을 더 빨리 파악할 수 있다. 클래스 이름은 첫 글자와 이어지는 각 단어의 첫 글자를 대문자로 쓰고, 메소드와 변수는 첫 단어를 소문자로 시작한 뒤 다음 단어의 첫 글자를 대문자로 쓴다. 상수는 모든 문자를 대문자로 쓰며 단어 사이는 밑줄로 구분한다.

대상관례
클래스각 단어의 첫 글자를 대문자로 표기Car, HelloWorld, MyClass
메소드·변수첫 글자는 소문자, 다음 단어부터 첫 글자를 대문자로 표기speed, myCar, gearArea()
상수모든 글자를 대문자로 쓰고 단어를 밑줄로 연결NUM_GEARS

int nSpeed;, String szStr1;처럼 이름 앞에 자료형을 짐작하게 하는 접두어를 붙이는 방식도 있다. 이는 강의록에서 소개한 선택적 작명 방식이며, 어떤 관례를 쓰든 프로젝트 안에서 일관성을 유지하는 것이 중요하다.

2.3 키워드

키워드는 Java 언어에서 의미가 미리 정해진 단어다. 프로그램에서는 정해진 용도로만 사용해야 하므로 식별자로 사용할 수 없다. 자료형을 나타내는 boolean, byte, char, int, 흐름을 제어하는 if, switch, for, while, 클래스를 구성하는 class, extends, implements, 접근과 상태를 지정하는 public, private, protected, static, final 등이 대표적이다.

주의: true, false, null은 키워드 목록과 구분되는 리터럴이지만 식별자로는 사용할 수 없다. constgoto는 Java에서 사용되지 않더라도 예약되어 있어 이름으로 쓸 수 없다.

3. 변수의 종류와 사용 범위

3.1 변수와 자료형

변수는 값을 저장하는 이름 있는 공간이다. 변수를 선언할 때는 저장할 값의 자료형을 함께 지정한다. 메소드를 선언할 때도 매개변수의 자료형과 반환값의 자료형을 선언하며, 자료형에 따라 사용할 수 있는 연산이 달라진다.

변수 종류선언 위치특징
인스턴스 변수클래스 내부의 non-static 필드각 객체가 독립적으로 소유한다.
클래스 변수클래스 내부의 static 필드같은 클래스의 모든 객체가 공유하는 정적 변수다.
지역 변수메소드나 블록 내부선언된 지점부터 해당 블록이 끝날 때까지 유효하다.
매개변수메소드의 매개변수 목록메소드 호출 때 전달된 값을 저장한다.

3.2 지역 변수와 데이터 필드의 범위

지역 변수와 매개변수는 선언된 곳부터 해당 블록이 끝날 때까지 사용할 수 있다. 메소드가 실행될 때 만들어지고 실행이 끝나면 사라진다. 특히 지역 변수는 초기값을 지정한 뒤 사용해야 하며, 지역 변수 선언에는 접근 제어자를 붙이지 않는다.

public class Counter {
  protected int count;       // 데이터 필드
  static int totalCount;     // 클래스 변수

  void increase(int amount) { // amount는 매개변수
    int next = count + amount; // next는 지역 변수
    count = next;
  }
}

데이터 필드는 선언된 클래스의 내부에서 사용할 수 있다. 클래스 외부에서 접근할 수 있는지는 public, protected, private 등의 접근 제어자에 따라 달라진다.

시험 구분: 인스턴스 변수는 객체별로 따로 존재하고, 클래스 변수는 클래스에 하나만 존재하여 객체들이 공유한다. 지역 변수는 블록 범위 안에서만 살아 있으며 사용 전에 명시적으로 초기화해야 한다.

4. 기본 자료형, 리터럴과 참조형

4.1 Java의 기본 자료형

기본 자료형은 값 자체를 저장한다. Java의 기본 자료형은 문자형 char, 논리형 boolean, 정수형 byte·short·int·long, 실수형 float·double로 나뉜다.

분류자료형길이값의 범위 또는 의미
문자char2바이트'\u0000'부터 '\uFFFF'까지
논리boolean강의표 기준 1바이트true 또는 false
정수byte1바이트-128부터 127까지
short2바이트-32,768부터 32,767까지
int4바이트-231부터 231-1까지
long8바이트-263부터 263-1까지
실수float4바이트대략 ±1.4E-45부터 ±3.4E38까지
double8바이트대략 ±4.9E-324부터 ±1.8E308까지

4.2 상수와 리터럴

상수는 한 번 값이 할당되면 그 값을 바꿀 수 없는 변수이며 final로 선언한다. 리터럴은 소스 코드에 직접 작성한 실제 데이터 값이다. 예를 들어 final int nConst = 3;에서 nConst는 상수이고 3은 정수형 리터럴이다.

리터럴 종류규칙
정수형기본은 int이며 L 또는 l을 붙이면 long이다.26, 26L
진법 표기0b는 2진수, 앞의 0은 8진수, 0x는 16진수다.0b11010, 032, 0x1a
실수형기본은 double이며 fF를 붙이면 float이다.123.4, 123.4f, 1.234e2
문자형한 문자를 작은따옴표로 감싸며 16비트 Unicode로 표현한다.'A', '가', '\uAC00'

문자는 0부터 65,535까지의 정수와 서로 대응하므로 (char)65'A'가 된다. Unicode 이스케이프를 쓰면 '\u0041'처럼 문자를 코드값으로 표현할 수 있다.

4.3 참조형

참조형은 기본형을 제외한 모든 자료형으로, 객체를 가리키는 주소 성격의 참조 값을 저장한다. 실제 객체는 동적 메모리 공간에 존재하며 참조형 변수는 그 객체에 접근하기 위한 값을 가진다. 대표적인 참조형에는 클래스, 배열, 인터페이스, 열거형이 있다.

int anArray[]; // 배열 참조 변수
Person p1;    // Person 객체를 가리킬 참조 변수
String szStr; // String 객체를 가리킬 참조 변수
기본형과 참조형의 차이: 기본형 변수는 저장 공간에 값 자체를 보관하지만, 참조형 변수는 객체를 가리키는 참조 값을 보관한다. 참조 변수를 선언한 것과 실제 객체를 생성한 것은 서로 다른 단계다.

5. 자료형의 변환

5.1 묵시적 형변환

작은 범위의 수치 자료형이 더 큰 범위의 자료형으로 변환될 때는 컴파일러가 자동으로 처리할 수 있다. 강의록에서 제시한 기본적인 확대 방향은 다음과 같다.

byte → short → int → long → float → double

double d = 5;                 // 대입에서 int가 double로 변환
System.out.println("j=" + 10); // 문자열 연결 과정의 변환
double result = Math.sqrt(2);  // 메소드 인자와 반환형에 맞춘 변환

묵시적 변환은 대입문, 수식 계산, 메소드 호출 시 인자의 형식을 맞추는 과정 등에서 일어난다. 작은 그릇의 값을 큰 그릇에 옮기는 것처럼 값의 표현 범위를 넓히는 방향이므로 별도의 형변환 연산자를 요구하지 않는다.

5.2 명시적 형변환

큰 범위의 자료형을 작은 범위의 자료형으로 바꾸려면 개발자가 변환 의도를 명확히 밝혀야 한다. 이를 명시적 형변환 또는 캐스팅이라 하며 값 앞에 (자료형) 형변환 연산자를 쓴다.

float f = (float)5.5;

5.5는 기본적으로 double 리터럴이므로 float 변수에 넣으려면 (float)로 강제 변환하거나 처음부터 5.5f로 작성한다. 축소 변환에서는 표현 범위를 벗어나거나 소수 부분이 사라지는 등 정보 손실 가능성이 있으므로 주의해야 한다.

형변환 판단: 작은 형에서 큰 형으로의 확대는 대체로 자동 변환되고, 큰 형에서 작은 형으로의 축소는 (자료형)을 이용한 명시적 변환이 필요하다.

6. 연산자, 명령행 매개변수와 문장

6.1 연산자의 종류

연산자는 특정 연산을 수행하도록 약속된 기호다. 연산자마다 우선순위가 있고 피연산자에 적용되는 방향도 있으므로 복잡한 식에서는 괄호로 계산 순서를 분명히 하는 것이 좋다.

구분주요 연산자기능
산술 연산자+, -, *, /, %사칙연산과 나머지를 계산한다. 단항 +·-, ++·--도 포함된다.
비교 연산자>, >=, <, <=, ==, !=, instanceof크기, 같음 여부, 타입 관계를 판정한다.
논리 연산자&&, ||, !, ? :논릿값을 결합·부정하거나 조건에 따라 값을 선택한다.
비트 연산자&, |, ^, ~, <<, >>, >>>정수의 비트 단위 논리 연산과 이동을 수행한다.
대입 연산자=, +=, -=, *=, /=, %=값을 저장하거나 연산과 대입을 한 번에 처리한다.
형변환 연산자(자료형)값을 지정한 자료형으로 명시적으로 변환한다.
기타[], (), .배열, 메소드 호출·그룹화, 멤버 접근 등에 사용한다.

6.2 명령행 매개변수

프로그램을 실행하면서 전달하는 인자를 명령행 매개변수라고 한다. 인자는 main() 메소드의 문자열 배열 매개변수로 전달되며 첫 번째 인자는 args[0], 두 번째 인자는 args[1]로 읽는다.

public class Main {
  public static void main(String args[]) {
    System.out.println(args[0] + ", " + args[1]);
  }
}

예를 들어 java Main test1 test2로 실행하면 두 문자열이 배열에 차례대로 들어가므로 test1, test2가 출력된다. 전달된 인자 수보다 큰 인덱스에 접근하지 않도록 실제 프로그램에서는 배열 길이도 확인해야 한다.

6.3 Java 문장의 종류

수식은 변수, 연산자, 함수 호출 등으로 구성되며 결과값을 계산한다. 대입문, 증가문, 함수 호출문, 객체 생성문 등은 수식문에 포함된다. 변수 선언문은 자료형과 이름을 선언하고, 제어문은 실행 순서를 바꾼다.

종류설명
수식문식을 평가하고 결과나 부수 효과를 만든다.대입, 증가, 메소드 호출, 객체 생성
변수 선언문자료형과 변수 이름, 필요하면 초기값을 선언한다.int score = 90;
제어문선택, 반복, 점프로 기본 실행 흐름을 바꾼다.if, for, break
블록문여러 문장을 중괄호로 묶어 하나의 단위로 만든다.{ ... }
레이블문문장이나 반복문에 이름을 붙인다.my_loop: for (...)
기타예외 처리와 동기화를 표현한다.try-catch, synchronized 블록

7. 선택문, 반복문과 점프문

7.1 제어문의 역할

Java 문장은 기본적으로 위에서 아래로 차례대로 실행된다. 제어문은 조건에 따라 일부 문장을 선택하거나, 같은 문장을 반복하거나, 실행 위치를 옮겨 이 흐름을 바꾼다. 선택문에는 ifswitch, 반복문에는 for, while, do-while, 점프문에는 return, break, continue가 있다.

7.2 if문과 else의 짝

if는 괄호 안의 boolean 수식이 참일 때 문장을 실행하고, if-else는 조건이 거짓일 때 else 뒤의 문장을 실행한다. 중첩된 if에서 중괄호가 없다면 else는 아직 짝이 없는 가장 가까운 if와 결합한다.

int a = 2;
int b = 2;

if (a == 1)
  if (b == 2)
    System.out.println("a was 1 and b was 2.");
  else
    System.out.println("a wasn't 1.");

위 코드의 else는 바깥쪽이 아니라 안쪽의 if (b == 2)와 짝을 이룬다. 의도와 오해를 방지하려면 한 문장만 있어도 중괄호로 블록을 명시하는 편이 안전하다.

7.3 switch문

switch는 하나의 식을 여러 case 값과 비교하는 다중 선택 구조다. 강의 범위에서 조건식은 long을 제외한 정수형과 호환되는 값 또는 String을 사용할 수 있다. default는 어느 case에도 맞지 않을 때 실행되며 생략할 수 있다.

switch (n) {
  case 10:
    System.out.println("10입니다.");
    break;
  case 20:
  case 30:
    System.out.println("20이거나 30입니다.");
    break;
  default:
    System.out.println("모르겠습니다.");
    break;
}

case 20에는 실행문과 break가 없으므로 값이 20이면 다음 case 30의 문장까지 이어서 실행한다. 일반적으로 일치한 case만 실행하려면 끝에 break를 두어 switch문을 빠져나온다.

7.4 반복문과 향상된 for문

for, while, do-while은 조건에 따라 문장을 반복한다. 배열이나 컬렉션의 원소를 처음부터 끝까지 차례로 다룰 때는 향상된 for문인 for-each문이 편리하다. 형식은 for (변수선언 : 배열) { 문장 }이다.

int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076, 2000, 8 };

for (int element : arrayOfInts) {
  System.out.print(element + " ");
}
System.out.println();

각 반복에서 배열의 다음 원소가 element에 들어온다. 인덱스가 필요하지 않고 모든 원소를 순서대로 읽는 작업에 적합하다.

7.5 break문과 continue문

break는 자신을 포함하는 가장 가까운 switch, for, while, do-while의 실행을 끝낸다. 반복문이나 switch문 밖으로 즉시 나갈 때 사용한다. 레이블을 사용한 break 레이블;은 중첩 구조에서 이름이 붙은 특정 블록이나 반복문을 빠져나갈 수 있다.

continue는 반복문 전체를 끝내지 않고 현재 반복의 남은 문장을 건너뛴 뒤 가장 가까운 반복문의 다음 반복 조건 검사로 이동한다. continue 레이블;을 사용하면 중첩 반복문에서 지정한 반복문의 다음 반복으로 이동할 수 있다.

public class Main {
  public static void main(String args[]) {
    int nSum = 0;

    my_loop: for (int i = 1; i <= 10; i++) {
      if (i % 2 == 0)
        continue my_loop;
      nSum += i;
    }

    System.out.println(nSum); // 25
  }
}

짝수에서는 덧셈을 건너뛰므로 1, 3, 5, 7, 9만 합해 결과는 25가 된다. 이 예에서는 레이블이 없어도 같은 동작을 하지만, 레이블이 붙은 continue문의 형식을 보여 준다는 데 의미가 있다.

break와 continue 비교: break는 반복문 자체를 종료하고, continue는 현재 회차만 중단한 뒤 다음 회차를 계속한다.

8. 핵심 개념 정리

  • Java 프로그램은 클래스로 구성되며, 같은 클래스로 만든 객체들은 데이터 필드의 값을 독립적으로 가질 수 있다.
  • 식별자는 대소문자를 구분하고 숫자로 시작할 수 없으며, 키워드와 true·false·null을 이름으로 사용할 수 없다.
  • 인스턴스 변수는 객체별로 존재하고 클래스 변수는 객체들이 공유한다. 지역 변수와 매개변수는 선언된 블록 안에서만 유효하다.
  • 기본형은 값 자체를 저장하고 참조형은 객체를 가리키는 참조 값을 저장한다.
  • 정수 리터럴의 기본형은 int, 실수 리터럴의 기본형은 double이다. LF 접미어로 각각 longfloat을 나타낸다.
  • 작은 수치형에서 큰 수치형으로의 확대는 묵시적으로 처리할 수 있지만, 큰 형에서 작은 형으로의 축소는 명시적 형변환이 필요하다.
  • 명령행 인자는 main()의 문자열 배열로 전달되고 args[0]부터 차례로 접근한다.
  • ifswitch는 선택, 반복문은 반복, breakcontinue는 실행 위치의 이동을 담당한다.
최종 정리
Java 기본 문법을 정확히 사용하려면 값의 종류와 유효 범위를 자료형·변수 선언으로 표현하고, 연산자와 제어문으로 그 값이 처리되는 순서를 명확하게 구성해야 한다.

9. 예상문제 20선

1. 같은 Grade 클래스로 g1과 g2 객체를 각각 생성한 경우에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
같은 클래스로 생성한 객체는 같은 필드와 메소드 구조를 따르지만 각 객체의 인스턴스 필드는 별도의 상태를 가진다.

2. Java 식별자로 사용할 수 있는 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
숫자는 첫 문자가 아니라면 식별자에 사용할 수 있다. 숫자로 시작하는 이름, 키워드, 논리 리터럴은 식별자로 쓸 수 없다.

3. Java의 일반적인 작명 관례에 맞는 상수 이름은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
상수 이름은 모든 문자를 대문자로 쓰고 여러 단어는 밑줄로 구분하는 것이 일반적인 관례다.

4. Java 키워드에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
키워드는 Java 문법에서 이미 특별한 의미가 부여된 예약어이므로 식별자로 사용할 수 없다.

5. 클래스 내부에서 static으로 선언되어 같은 클래스의 모든 객체가 공유하는 변수는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
static 필드는 클래스에 하나만 존재하여 모든 인스턴스가 공유하므로 클래스 변수 또는 정적 변수라고 한다.

6. 지역 변수에 대한 설명으로 옳지 않은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
지역 변수 선언에는 접근 제어자를 사용하지 않는다. 접근 제어자는 데이터 필드 등의 클래스 구성원에 적용된다.

7. Java에서 2바이트 Unicode 문자 하나를 저장하는 기본 자료형은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
char는 16비트 Unicode 문자 한 개를 표현하며 작은따옴표로 문자 리터럴을 작성한다.

8. 다음 중 8바이트 정수형이며 범위가 -263부터 263-1인 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
long은 8바이트 정수형이다. double도 8바이트지만 실수형이다.

9. 다음 리터럴 표기에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
정수 뒤의 L은 long형을 뜻한다. 0b, 앞의 0, 0x는 각각 2진수, 8진수, 16진수 표기다.

10. float형 리터럴로 올바르게 작성된 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
소수점이 있는 리터럴은 기본적으로 double형이며, 뒤에 f 또는 F를 붙이면 float형이 된다.

11. 기본형과 참조형의 차이에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
기본형은 저장 공간에 값을 직접 보관하고, 클래스와 배열 같은 참조형의 변수는 객체를 가리키는 참조 값을 보관한다.

12. 다음 중 명시적 형변환이 필요한 대입은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
표현 범위가 큰 double을 더 작은 float으로 옮기는 축소 변환에는 (float)과 같은 명시적 형변환이 필요하다.

13. 프로그램을 java Main red blue로 실행했을 때 첫 번째 명령행 인자를 나타내는 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
명령행 인자는 main()의 문자열 배열에 순서대로 전달되며 배열 인덱스는 0부터 시작한다.

14. 비교 연산자에 해당하지 않는 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
+=는 덧셈과 대입을 결합한 복합 대입 연산자다. 나머지는 비교 또는 타입 관계를 판정한다.

15. 중괄호 없이 if문을 중첩했을 때 else가 결합하는 대상은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
else는 짝이 없는 가장 가까운 if와 결합한다. 중첩 조건에서는 중괄호로 의도를 명확히 표시하는 것이 좋다.

16. switch문에서 break를 생략한 case가 일치했을 때의 동작은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
일치한 case 뒤에 break가 없으면 다음 case 레이블을 지나 문장 실행이 계속되는 fall-through가 일어난다.

17. 배열의 모든 원소를 인덱스 없이 차례대로 읽기에 가장 적합한 문장은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
향상된 for문은 배열이나 컬렉션의 원소를 처음부터 끝까지 순서대로 처리할 때 편리하다.

18. 가장 가까운 반복문 또는 switch문의 실행을 즉시 끝내는 문장은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
break는 가장 가까운 switch나 반복문을 종료한다. continue는 반복문을 끝내지 않고 다음 회차로 이동한다.

19. continue문에 대한 설명으로 옳지 않은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
반복문 전체를 종료하는 것은 break다. continue는 현재 반복만 중단하고 다음 반복을 계속한다.

20. 1부터 10까지 반복하면서 짝수일 때 continue하고 홀수만 합한 결과는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
짝수 회차를 건너뛰므로 1+3+5+7+9를 계산하여 합은 25가 된다.

댓글