char[] ch= {'I', 't', 'W', 'i', 'l', 'l'};
int size=ch.length; //6
// -> 대문자 : 2개
// -> 소문자 : 4개
int upper=0; //대문자의 개수
int lower=0; //소문자의 개수
for(int i=0; i<size; i++) {
if (ch[i]>='A' && ch[i]<='Z') { upper++;}
if (ch[i]>='a' && ch[i]<='z') { lower++;}
}//if end
System.out.printf("대문자 개수 : %d\n", upper);
System.out.printf("소문자 개수 : %d\n", lower);
💻 console
대문자 개수 : 2
소문자 개수 : 4
char[] ch= {'I', 't', 'W', 'i', 'l', 'l'};
int size=ch.length; //6
// iTwILL
for(int i=0; i<size; i++) {
if (ch[i]>='A' && ch[i]<='Z') {
System.out.printf("%c", ch[i]+32);
}//if end
if (ch[i]>='a' && ch[i]<='z') {
System.out.printf("%c", ch[i]-32);
} //if end
}//for end
💻 console
iTwILL
// -> 모음의 개수 : 2개
char[] ch= {'I', 't', 'W', 'i', 'l', 'l'};
int size=ch.length; //6
int mo=0; //모음의 개수
for(int i=0; i<size; i++) {
char c=ch[i];
if(c>='A' && c<='Z') { //대문자인지?
c=(char)(c+32); //소문자로 변환
}//if end
switch(c) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': mo++;
}// switch end
}//for end
System.out.printf("\n모음의 개수: %d\n", mo);
💻 console
모음의 개수: 2
[해설]
int mo=0;
- 모음의 개수를 넣을 변수 설정for(int i=0; i<size; i++)
- 0부터 int size=ch.length; (6) 까지 반복문을 준다.char c=ch[i];
- 그 문자를 문자형 c 변수에 넣는다if(c>='A' && c<='Z')
- c변수 안에 있는 문자들 안에 대문자가 있다면c=(char)(c+32);
- c를 소문자로 바꿔준다.switch(c) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': mo++;
}// switch end
- switch~case문으로 모음이 나오면 mo변수에 1씩 추가해준다. //str[0]행 : 2개
//str[1]행 : 1개
//str[2]행 : 2개
char[][] str= {
{'Y', 'e', 'a', 'r'}
,{'M', 'o', 'n', 't', 'h'}
,{'D', 'a', 't', 'e'}
};
int row=str.length; //3
int count=0;
for(int r=0; r<row; r++) {
int col=str[r].length; //4,5,4
for(int c=0; c<col; c++) {
char w=str[r][c];
if(w>="A" && w<="Z") {
w=(char)(w+32);
}//if end
switch(w) {
case 'a' :
case 'e' :
case 'i' :
case 'o' :
case 'u' : count++;
}//switch end
}//for end
System.out.printf("\n str[%d]행 모음의 개수] : %d개", r, count);
count=0; //각 행마다 모음의 개수를 구하기 때문에 초기화 해야함
}//for end
💻 console
str[0]행 모음의 개수 : 2개
str[1]행 모음의 개수 : 1개
str[2]행 모음의 개수 : 2개
// 대각선 ↘ 방향의 합 4,9,7 = 20 num[0][0] + num[1][1] + num[2][2]
// 대각선 ↙ 방향의 합 2,9,6 = 17 num[0][2] + num[1][1] + num[2][0]
int[][] num= {
{4, 3, 2}
,{5, 9, 1}
,{6, 8, 7}
};
int hap1=0; // 대각선 ↘
int hap2=0; // 대각선 ↙
for(int i=0; i<num.length; i++) {
hap1=hap1+num[i][i];
hap2=hap2+num[i][num.length-1-i];
}//for end
// ---------------------------------------------------------------------------------
//[분석하기..]
int[][] num= {
{[0][0], [0][1], [0][2]}
,{[1][0], [1][1], [1][2]}
,{[2][0], [2][1], [2][2]}
};
대각선 ↘ num[0][0] + num[1][1] + num[2][2] //=> [i][i]가 똑같이 증가하고
대각선 ↙ num[0][2] + num[1][1] + num[2][0] //=> [i][num.length-1-i]
// 열이 2에서부터 0으로 감소하고 있다.
// 0부터 시작하기때문에 -i를 주면 순차적으로 감소한다.
num.length; //3
for(int i=0; i<num.length; i++)
i=0; → 0<3;
→ hap1=hap1+num[0][0];
→ hap2=hap2+num[0][3-1-0]; → 0++ → i=1
[2]
i=1; → 1<3;
→ hap1=hap1+num[1][1];
→ hap2=hap2+num[1][3-1-1]; → 1++ → i=2
[1]
i=2; → 2<3;
→ hap1=hap1+num[2][2];
→ hap2=hap2+num[2][3-1-2]; → 2++ → i=3
[0]
i=3; → 3<3;
→ 3<3 조건이 false 이므로 for문 종료!
💻 console
대각선 ↘ 방향의 합 : 20
대각선 ↙ 방향의 합 : 17