단축키 모음
for 입력 후 CTRL + spacebar 두번째 | for문 |
---|
int i = 0; 으로 초기화하는 이유
i 는 배열 index의 앞글자, 배열의 가장 앞의 주소값
되도록 반복 횟수 적게 만들기
ex) 예를 들면 짝수 출력할 때 1 부터 100까지면 50 출력
for(초기식; 조건식; 증감식) {
실행할 문장;
}
while(조건식) {
실행할 문장;
}
for : 몇 번 반복할 지 알 때
while : 몇 번 반복할 지 모를 때 (특정한 조건만 존재 - 키오스크)
do {
실행할 문장;
} while(조건식) {
};
무조건 한 번은 실행되어야 할 때 사용한다.
break : 즉시 해당 중괄호 영역을 탈출한다.
continue : 즉시 다음 반복
switch문에서는 break를 써도 중괄호를 나갈 수 없기 때문에 if문을 사용하거나 boolean flag 초기값 false
사용
RAM
에는 heap
이라는 영역이 있다. heap
은 프로그램이 실행되고 있어도 바꿀 수 있다. 다른 표현으로는 동적 메모리
라고 한다. new 연산자
는 new
뒤에 있는 내용을 heap 메모리
에 올리라는 의미이다. 눈에는 보이지 않지만 컴파일이 될 때 중괄호 앞에는 new
가 생략되어 있다.
자료형[] 배열명 = {값1, 값2, 값3,...};
// 어떤 값을 넣을지 알 때 사용
자료형[] 배열명 = new 자료명[칸수];
// 어떤 값을 넣을지는 모르나, 몇 칸 만들지는 알 때 사용 + 자동 초기화
자료형[] 배열명 = null;
// 어떤 값을 넣을지도 모르고 몇 칸 만들지도 모를 때 사용한다.
※ new : Heap 메모리에 할당, 초기값으로 자동 초기화
※ null : 주소의 초기값, 어떤 주소를 넣을지 모를 때 작성하는 값
※ 자바에서 배열은 항상 Heap(동적 메모리)에 할당되기 때문에 메모리 상으로는 동적배열만 존재한다.
int[] arData = {3, 5, 1, 2, 8};
arData라는 이름의 저장공간은 한 개 만들어지며, 여기에는 한 개의 값만 담을 수 있다. 5개의 값을 담기 위해서는 5칸이 필요하며, 이는 Heap 메모리에 할당된다. 5칸의 저장공간 중 첫 번째 저장공간의 주소값이 arData 저장공간으로 들어가며, 다음 주소에 접근하기 위해서는 +n을 한다.
예를 들어 arData + 2는 1이라는 값이 담긴 주소값이 되며, *(arData + 2)는 해당 주소에 가서 읽어온 1이라는 값이 된다. JAVA에서는 직접 주소에 접근하는 연산자가 없기 때문에 위와 같은 식을 []로 치환하여 사용하며, arData[2]로 사용한다.
각각의 방 번호는 index라고 부르며, 배열은 시작주소를 가지고 있기 때문에 인덱스 번호는 항상 0부터 시작된다.
배열을 선언하면 length라는 상수가 선언되고, 해당 배열의 길이가 담긴다.
배열명.length로 사용하게 된다.
int [] arData = new int[5]; // 저장공간
arData[0] = 10; // 저장공간
arData[0] + 9; // 값
System.out.println(arData); //주소값
arData[2] = arData[0] + arData[1]; // 저장공간, 값
System.out.println(arData[5]); // 오류
package stringTest;
public class StringTest {
public static void main(String[] args) {
String data = "ABCD";
System.out.println(data.length());
System.out.println(data.charAt(1));
System.out.println(data.indexOf("D"));
}
}
package stringTest;
import java.util.Iterator;
import java.util.Scanner;
public class StringTask {
public static void main(String[] args) {
// 정수를 한글로 변경
// 입력 예) 1024
// 출력 예) 일공이사
// 1. 정수로 입력받기
Scanner sc = new Scanner(System.in);
String message = "정수 입력: ";
String hangle = "공일이삼사오육칠팔구";
// int number = 0;
String number = null;
String result = "";
System.out.print(message);
// number = sc.nextInt();
//
// while(number != 0) {
// result = hangle.charAt(number % 10) + result;
//// result = result + hangle.charAt(number % 10);
// number /= 10;
// }
// System.out.println(result);
// 2. 문자열로 입력받기
number = sc.next();
for (int i = 0; i < number.length(); i++) {
result += hangle.charAt(number.charAt(i) - 48);
}
System.out.println(result);
}
}