* § 자바의 기초 문법
2.1 여러 가지 대입문
☞ 변수를 선언하는 목적은 변수에 데이터를 담아 두었다가 나중에 사용하기 위해서입니다.
┏>변수에 대입할 값을 계산하는 식
변수 = 식;
┗>변수의 이름
ex) num = 1;
num = 2 + 3;
num = num1 + num2;
연산자 |
설명 |
사용 예 |
+ |
덧셈 연산자 |
num = 1 + 2; |
- |
뺄셈 연산자 |
num = 3 - 1; |
* |
곱셈 연산자 |
num = 2 * 3; |
/ |
나눗셈 연산자 |
num = 7 / 2; // 계산결과는 3 |
% |
나눗셈의 나머지를 계산하는 연산자 |
num = 7 % 2; // 계산결과는 1 |
☞ 복합 대입 연산자를 이용한 대입문
대입문이 하는 일이 변수의 원래 값에 다른 값을 더하는 것이라면 + 연산자와 = 연 산자를 따로 사용하는 것보다 두 기능이 복합된 += 연산자를 사용하는 것이 편리합 니다.
ex) [ num += 3; ] == [ num = num + 3; ]
연산자 |
설명 |
사용 예 |
+= |
좌변의 변수에 우변의 값을 더하는 연산자 |
num += 1; |
-= |
좌변의 변수에서 우변의 값을 빼는 연산자 |
num -= 3; |
*= |
좌변의 변수에 우변의 값을 곱하는 연산자 |
num *= 2; |
/= |
좌변의 변수를 우변의 값으로 나눈 몫을 좌변에 대입하는 연산자 |
num /= 2; |
%= |
좌변의 변수를 우변의 값으로 나눈 나머지를 좌변에 대입하는 연산자 |
num %= 2; |
< 예제 2-14 > 복합 대입 연산자의 사용 예를 보여주는 프로그램
class AssignmentExample1 {
public static void main(String args[]) {
int num = 17;
num += 1; // num = num + 1;과 동일
num -= 2; // num = num - 2;과 동일
num *= 3; // num = num * 3;과 동일
num /= 4; // num = num / 4;과 동일
num %= 5; // num = num % 5;과 동일
System.out.println(num);
}
}
☞ 증가 연산자와 감소 연산자
+=연산자를 사용하는 이유가 변수의 기존 값에 1을 더하는 것이라면 더 간단한 방 법으로 명령문을 만들 수도 있습니다. ++ 연산자를 사용하는 방법입니다. 이 연산자 의 사용방법은 다음과 같습니다.
ex) num++; == ++num; (증가 연산자)
이 명령문은 num 변수의 기존 값에 1을 더해서 그 결과를 다시 num에 대입합니다.
ex) num--; == --num; (감소 연산자)
반대로 감소연산자는 기존 값에서 1을 뺀 후에 그 결과를 다시 변수에 대입하는 -- 연산자도 있습니다.
< 예제 2-15 > ++연산자 -- 연산자의 사용 예를 보여주는 프로그램
class IncrDecExample1 {
public static void main(String args[]) {
int num = 0;
num++;
System.out.println(num);
++num;
System.out.println(num);
num--;
System.out.println(num);
--num;
System.out.println(num);
}
}
2.2 배열의 선언, 생성, 이용
10개의 데이터가 데이터타입이 모두 같고, 사용하는 목적도 비슷하다면 모든 데이터 를 한 곳에 저장해두고 하나의 변수를 가지고 사용할 수 있다. 이 절에서 배울 배열 이 바로 그런 식으로 사용할 수 있는 데이터 저장 장소입니다.
a)10개의 다른 이름을 갖는 변수들
이름 : a b c d e f g h I j
7 9 100 32 5 8 6 72 27 81
b)10개의 데이터를 저장할 수 있는 배열
이름 : num
7 |
9 |
100 |
32 |
5 |
8 |
6 |
72 |
27 |
81 |
인덱스 : 0 1 2 3 4 5 6 7 8 9
배열의 항목에는 각각 순번이 붙습니다. 그 순번을 인덱스(index)라고 하는데 배열 이름과 인덱스를 함께 사용하면 각각의 배열 항목을 단일 변수인 것처럼 사용할 수 있습니다.
『일차원 배열의 선언 , 생성 , 이용』
배열 변수도 일반 변수처럼 선언을 해야만 사용할 수 있습니다.
☞ 1차원 배열 변수 선언문 기본형식 (1) ☞ 1차원 배열 변수 선언문 기본형식(2)
타입 식별자[]; ↑ ↑ 배열항목 타입 배열변수 이름 |
타입[] 식별자; ↑ ↑ 배열항목 타입 배열변수 이름 |
ex) Int arr[]; Int[] arr;
float num[]; Float[] num;
String strArr[]; Strung[] strArr;
배열을 사용하기 위해서는 배열을 생성해서 배열변수에 대입해야 한다.
[ 1차원 배열을 생성하는 식 ]
new 타입 [ 크기 ] ;
ex) arr = new int[10]
num = new float [5]
strArr = new String [3]
[ 1차원 배열의 항목을 가르키는 식 ]
배열이름 [ 인덱스 ];
↑ ↑
배열 변수의 이름 배열 항목의 위치
ex)
arr[0] = 12; num[3] = num[1] + num[2]; System.out.println(strArr[2]); |
배열의 인덱스는 0부터 시작하기 때문에 배열의 첫 번째 항목의 인덱스는 0이고 , 두 번째 항목의 인덱스는 1입니다.
class ArrayExample1 {
public static void main(String args[]) {
int arr[]; ----------- 배열 변수를 선언합니다.
arr = new int[10]; ----------- 배열을 생성합니다.
arr[0] = 10; ┐
arr[1] = 20; │
arr[2] = arr[0] + arr[1]; ----------- 배열항목을 사용합니다.
System.out.println(arr[0]); │
System.out.println(arr[1]); │
System.out.println(arr[2]); ┘
}
}
☞다차원 배열의 선언, 생성, 이용
[ 2차원 배열 변수 선언문 기본 형식(1) ] [ 2차원 배열 변수 선언문 기본 형식 (2) ]
타입 식별자[][]; 타입[][] 식별자;
↑ ↑ ↑ ↑
배열 항목의 타입 배열 변수의 이름 배열 항목의 타입 배열 변수의 이름
ex) Int arr[][]; Int[][] arr;
Float num[][]; Float[][] num;
String strArr[][]; String[][] strrArr[][]
new 타입 [크기1] [크기2]
↑ ↑ ↑
배열 항목의 타입 행의 수 열의 수
ex) arr = new int[10][10];
num = new float[5][2];
strArr = new String[3][15];
class ArrayExample2 {
public static void main(String args[]) {
int table[][] = new int[3][4];
table [0][0] = 10;
table [1][1] = 20;
table [2][3] = table [0][0] + table [1][1];
System.out.println(table[0][0]);
System.out.println(table[1][1]);
System.out.println(table[2][3]);
}
}
배열의 선언과 초기화를 한꺼번에 하는 방법
배열 변수를 선언하고 나서 바로 다음에 해야 할 일은 배열을 생성하고 항목을 초기화 하는 것입니다
Int arr[]
arr = new int[10];
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
arr[5] = 60;
arr[6] = 70;
arr[7] = 80;
arr[8] = 90;
arr[9] = 100;
맨 위의 문장과 두 번째 문장을 합하면
Int arr[] = new int arr[10]; 로 만들 수 있다.
간단하게 만드는법 초기값의 수와 동일한 크기의 배열이 생성되고 그 배열의 항목들이 해당 값으로 초기화되기 때문입니다.
Int arr[] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
< 예제 2-18 > 배열 항목을 초기화하는 1차월 배열 변수의 선언문의 예
class ArrayExample3 {
public static void main(String args[]) {
int arr[] = { 10, 20, 30, 40, 50 };
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
2차원 배열의 경우에도 이런 선언문을 사용할 수 있습니다, 하지만 그럴 때는 중괄호 안에 중괄호를 써서 차원을 표시해야 합니다. 다음은 그런 예를 보여주는 프로그램입니다.
< 예제 2-19 > 배열 항목을 초기화하는 2차월 배열 변수의 선언문의 예
class ArrayExample4 {
public static void main(String args[]) {
int table[][] = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8, },
{ 9, 10, 11, 12} };
System.out.println(table[0][0]);
System.out.println(table[1][1]);
System.out.println(table[2][3]);
}
}
배열의 항목 수를 알아내는 방법
배열의 이름 뒤에 “.length”를 붙여서 만든다
< 예제 2-20 > 배열의 항목 수를 출력하는 프로그램
public static void main(String args[]) {
int arr[] = { 21, 2, 4, 3, 4, 65, 7, 178, 3, 5, 45, 75, 2, 0, 32, 75, 92 };
System.out.println(arr.length);
}
}
2.3 조건문
(1) 조건문이란?
컴퓨터가 단순한 기계보다 우수한 이유는 조건에 따라 다른 처리를 할 수 있기 때문 입니다. 자바 프로그램에서도 그런 명령문을 만들 수 있는데, 그런 명령문을 조건문 이라고 합니다. 조건문은 if키워드를 가지고 만들 수 있습니다.
(2) if 문
- if 조건문은 그 조건에 해당하면 실행되는 문법이다.
[ if 문의 기본 형식(1) ]
┏> true 또는 false 값을 산출할 수 있는 식
if ( 조건식 )
{ 조건이 참이면 실행하는 코드 }
* 일반적인 if문은 참일 때만 실행된다.
ex)
if (num1 > num2)
System.out.println(“num1 값이 더 큽니다”);
[ if 문의 기본 형식(2) ]
┏> true 또는 false 값을 산출할 수 있는 식
if ( 조건식 )
블록
ex)
if (num1 > num2)
{ System.out.println(“num1 값이 더 큽니다”);
System.out.println(num1);
}
<예제 2-21> if 문의 사용 예를 보여주는 프로그램
class IfExample2 {
public static void main(String args[]) {
int num1 = 52;
int num2 = 24;
if (num1 > num2)
System.out.println("num1 값이 더 큽니다. ")
System.out.println("num1 = " + num1);
System.out.println("Done.");
}
}
- if 문을 else 키워드와 함께 사용하는 방법
if 문을 else 키워드와 함께 사용하면 조건을 만족하지 않을 때 해야 할 일도 기술할 수 있습니다. if 문을 else 키워드와 함께 사용하는 방법은 다음과 같습니다.
[ if-else 문의 기본 형식 ]
<예제 2-22> if - else 문의 사용 예를 보여주는 프로그램
class IfExample2 {
public static void main(String args[]) {
int num1 = 12;
int num2 = 24;
if (num1 > num2)
System.out.println("num1 = " + num1);
else
System.out.println("num2 = " + num2);
System.out.println("Done");
}
}
<예제 2-23> if 문을 포함하는 if 문의 예를 보여주는 프로그램
class IfExample3 {
public static void main(String args[]){
int num1 = 52;
int num2 = 24;
int num3 = 32;
if (num1 > num2)
if (num1 > num3)
System.out.println("num1이 제일 큽니다.");
System.out.println("Done.");
}
}
dangling else 와 else if 절
dangling else는 가장 가까이 있는 if 키워드와 짝을 이루는 규칙이다.
<예제 2-24> 자바의 dangling else 규칙을 잘 모르고 작성한 프로그램
class IfExample4 {
public static void main(String args[]) {
int num1 = 152;
int num2 = 173;
if (num1 > num2)
if (num1 > 100)
System.out.println("num1 = " + num1);
else
if (num2 > 100)
System.out.println("num2 = " + num2);
System.out.println("Done.");
}
}
<예제 2-25> 수정된 ifexample4 프로그램
class IfExample4 {
public static void main(String args[]) {
int num1 = 152;
int num2 = 173;
if (num1 > num2){
if (num1 > 100)
System.out.println("num1 = " + num1);
}
else {
if (num2 > 100)
System.out.println("num2 = " + num2);
}
System.out.println("Done.");
}
}
<예제 2-26> 자바의 dangling else 규칙을 잘 활용한 프로그램
class IfExample5 {
public static void main(String args[]) {
int num = 74;
if (num < 10)
System.out.println("num의 값은 10 미만입니다.");
else if (num < 100)
else if (num < 1000)
system.out.println("num의 값은 100이상 1000 미만입니다.");
else
System.out.println("num의 값은 1000이상입니다.");
}
}
switch 조건문
switch 키워드도 if 키워드처럼 조건문을 만드는 데 사용돕니다. 하지만 switch 문은 if 문과는 달리 여러 개의 조건을 설정할 수 있습니다. switch 문의 전형적인 형식은 다음과 같습니다.
정수나 char 타입의 값을 산출할 수 있는 식
↑
switch (식){
case 값1 : 1회 이상 여러 번 반복 가능한 부분
명령문들
break;
case 값2 :
명령문들
break;
case 값2 :
명령문들
break;
default :
명령문들 생략 가능한 부분
break;
}
<예제 2-27> switch문의 전형적인 사용 예를 보여주는 프로그램
class SwitchExample1 {
public static void main(String args[]) {
int num = 3;
switch (num) {
case 1 :
System.out.println("Good Morning, Java");
break;
case 2 :
System.out.println("Good Afternoon, Java");
break;
case 3 :
System.out.println("Good Evening, Java");
break;
default :
System.out.println("Hello, Java");
break;
}
System.out.println("Done.");
}
}
<예제 2-29> 둘 이상의 값에 대해 같은 처리를 하는 switch 문의 예
class SwitchExample2 {
public static void main(String args[]) {
char ch = 'p';
switch (ch) {
case 'A' :
case 'a' :
System.out.println("사과");
break;
case 'P' :
case 'p' :
System.out.println("배");
break;
case 'G' :
case 'g' :
System.out.println("포도");
default :
System.out.println("?");
break;
}
}
'프로그래밍언어 > JAVA' 카테고리의 다른 글
[동영상 강좌] Eclipse Visual Editor (0) | 2011.01.04 |
---|---|
[동영상 강좌] 이클립스로 간단한 프로젝트 만들기 (4) | 2011.01.04 |
[동영상 강좌] 이클립스 wtp로 JSP연동하기 (0) | 2011.01.04 |
[동영상강의] Eclipse에서 Jigloo 사용하기 -3강 (0) | 2011.01.04 |
[동영상강의] Eclipse에서 Jigloo 사용하기 -2강 (0) | 2011.01.04 |