Array 배열
의미 : 동일한 자료형값의 집합
관련용어 : 순서, 색인, index(순서값, 0부터 시작), element 요소
배열 종류
1차원 : 열로 구성 (아파트 0층만 있는게 1차원 1층,2층, 3층,,,)
2차원 : 행과 열로 구성
3차원 : 자바에는 없는 개념 -> 자바의 클래스를 더 많이 사용
열, 칸 : column
행, 줄 : row
new 연산자로 메모리를 할당한 후 사용한다
예를 들면 시험성적 출력할 시, 100명의 학생의 이름을 다 입력할 수는 없음. 이때 하나로 묶어주는 배열을 사용!
동일한 자료형을 묶은 하나의 변수 -> kor
<----------------------kor-------------------------->
60 | 100 | 85 |
kor[0] kor[1] kor[2]
순서값은 0부터 시작 .
예제) 배열의 인덱스 칸 수
int[] kor = new int[3]; //new를 씀으로 메모리 할당
kor[0]=60; //배열의 인덱스는 0부터 시작한다
//배열의 인덱스는 1씩 증가산다
kor[1]=100;
kor[2]=85;
System.out.println(kor[0]);
System.out.println(kor[1]);
System.out.println(kor[2]);
System.out.println(kor .length); //kor 배열요소의 칸 수
출력결과
3
. 를 치면 나오는 length함수를 이용 배열요소의 칸 수 를 출력
예제) 열거형
int [] eng = {55, 40, 80}; //괄호 안 정수 3개=4byte 3개 자동으로 선언해줌
//열거형
int size = eng .length ;
for(int a=0; a<size; a++){
System.out.println(eng[a]); //a로 출력했을 시 0,1,2 인덱스 순서값만 출력
//eng[a]로 출력했을 시 각 인덱스안의 값이 출력
}//for end
출력결과
55
40
80
예제) 1차원 문자열 double, char, String
double[] aver={ 1.2, 3.4, 5.6};
for (int a=0; a<aver.length ;a++){
System.out.println(aver[a]);
}//for end
출력결과
1.2
3.4
5.6
//-----------------------------------------------------------------------
char[] ch= {'H','E','L','L','O'};
for (int a=0; a<ch.length ; a++){
System.out.println(ch[a]);
}//for end
출력결과
H
E
L
L
O
//-----------------------------------------------------------------------
String[] name={"진달래","개나리","무궁화"};
for (int a=0; a<name.length ; a++){
System.out.println(name[a]);
}//for end
출력결과
진달래
개나리
무궁화
<연습문제> -1차원 문자열 배열
char[] ch={'S','o','l','d','e','s','k'};
int size=ch.length ;
for(int idx=0; idx<size; idx++){
System.out.println(ch[idx]);
}//for end
System.out.println();
위의 코드를 참조하여 아래문제를 푸시오
문제 1) 대문자, 소문자의 갯수를 각각 구하시오 +문제 2) 모음의 갯수 같이
int upper=0, lower=0, mo=0;
for(int idx=0;idx<size;idx++){
if(ch[idx]>'A' && ch[idx]<'Z'){
upper++;
}//if
if(ch[idx]>'a' && ch[idx]<'z'){
lower++;
}//if
switch(ch[idx]){
case 'a' :
case 'e' :
case 'i' :
case 'o' :
case 'u' : mo++;
}//if end
}//for end
System.out.println("대문자의 갯수는 "+upper);
System.out.println("소문자의 갯수는 "+lower);
System.out.println("모음의 갯수는 "+mo);
출력결과
대문자의 갯수는 1
소문자의 갯수는 6
모음의 갯수는 2
문제 2) 모음의 갯수를 구하시오
//내 풀이
int moem=0;
for(int idx=0;idx<size;idx++){
if(ch[idx]=='o'||ch[idx]=='l'||ch[idx]=='d'||ch[idx]=='e'||ch[idx]=='s'||ch[idx]=='k'){
moem++;
}//if end
}//for end
System.out.println("모음의 개수는 "+moem);
출력결과
모음의 갯수는 6
문제 3) 대문자와 소문자를 서로 바꾸어 출력하시오
-> 출력결과 ; sOLDESK
for(int idx=0;idx<size;idx++){
if(ch[idx]>='A' && ch[idx]<='Z'){
System.out.print((char)(ch[idx]+32));
}else if(ch[idx]>='a' && ch[idx]<='z'){
System.out.print((char)(ch[idx]-32));
}else{
System.out.print(ch[idx]);
}//if
}//for
출력결과
sOLDESK
아스키 코드를 이용해서 +-32 바꿔서 출력
'공부 > 자바 OOP' 카테고리의 다른 글
5월23일 - Method 메소드 ★매우 중요★ (0) | 2019.05.23 |
---|---|
5월 22일 - 배열 2+연습문제 (0) | 2019.05.22 |
5월 21일 - while/ do~while 반복문+ 도형 + 연습문제 (0) | 2019.05.21 |
5월20일 - 반복문 For + 연습문제 (0) | 2019.05.20 |
5월 17일 - 제어문 + QUIZ(if, switch) (0) | 2019.05.17 |