본문 바로가기
Java/JAVA 문법

자바 기초 배우기 7일차 [ 중첩반복문 / .equals / .charAT() / .length()]

by lchit 2020. 1. 4.

1. 중첩 반목 문

예제

2.. equals

3.. length()

4.. charAT()

1. 중첩 반복문

구조:

for ( ) {

for( ) { }

}

중첩 반복문은 반복문 안에 또 반복문이 존재한다

밖의 반복문이 반복될 때마다 안에 있는 반복문이 실행되는 것이다.

예제를 통해 알아보자

예제 1.

실행 결과

*****

*****

*****

*****

"*" 이 가로로 5개가 출력되는걸

4번 반복한다. 이 예제를 중첩 반복문을 이용하여 만들어보자

초록색 밑 중이 밖의 반목 문이며 열의 출력을 담당하고 있다

for ( int i=0; i <4; i++ ) i변수는 0이고

1씩 증가하며 4회 반복된다. { }를

이때 밖의 반복문이 실행하는 { } 안에 또 다른 반복문이 존재하고

그 안의 반복문은 "*"을 5개씩 출력하는 역할을 하고 있다.

for(int i2=0; i2 <5; i2++) {

System.out.print("*");

}

이처럼 밖의 반복문은 열

안의 반복문은 행을 담당하고 있다.

예제 2.

실행결과

*

**

***

****

*****

"*"이 한 개로 시작하여 5개로 끝나는 예제이다.

여기서도 마찬가지로

밖의 for문이 1회 반복할 때

안의 for문에 조건에 따른 실행 값이 실행되는 것이다

밖의 for문이 한번 실행하여 한 단계의 열을 만들 때

안의 for문은 하나의 행을 만든다.

저 코드를 말로 풀이하자면

for ( i는 1이고 i가 6만큼 반복한다 i는 1씩 증가한다 ) {

for( i2는 0이고 i2가 i만큼 반복한다 i2는 1씩 증가한다) {

이 for문은 "*"을 출력한다 }

줄 바꿈을 위해 println() 출력 사용

}

*KEY

밖의 for = 열

안의 for = 행

2.. equals()

자바 5일 차 조건문에 들어갔어야 하는 내용인데

언급한 적이 없어서 여기에 정리한다.

숫자와 숫자를 비교할 때 서로 같은지에 대하여 ==을 사용하여 비교한다

2==2 : true

1==2 : false

그럼 문자열과 문자열을 비교할 때는?

"안녕" == "안녕" :?

이라고 생각할 수 돼있지만

문자열이 서로 같은지에 대한 비교는

. equals()를 쓴다.

구조를 보면 이렇다

String x="안녕";

String y="안녕";

x.equlas(y) : true

! x.equlas(y) : false

이 처럼 조건문 등에서 문자열을 비교할 때는

. equals()를 사용하여 비교한다.

3.. length()

. length()는 문자열의 총길이 값을 반환한다

ex)

x="안녕하세요"

x.length(); >> 5

 

4.. cahrAT()

. charAT()는 문자열의 문자형들을 인덱스 번호로 불러오는 기능이다

x="안녕하세요"

"안녕하세요"의 인덱스 번호

안:0 녕:1 하:2 세:3 요:4

x.charAT(2)? :하

String x값을 안녕하세요로 두고

String y변수 값은 비워둔다

x.charAT(2);로 안녕하세요의 3번인 "하"를 추출하고

y에 담아준 뒤

y를 출력하였다.

for문 활용 응용 예제

숫자를 입력받아 그 숫자 하나하나에 (+1)을 하여라

스캐너 기능 활용 x변수에 숫자를 String 변수로 입력받고

String y 변수는 비워둔다

x.length(); 를 이용하여 입력받는 수의 길이만큼 반복한다.

무엇을? { y+=(char)(x.charAt(i)+1); }를

x.charAT(i)+1 은 x에 입력된 수에 +1을 하는 역할을 하는데

charAT()은 문자열의 괄호 안의 번호(인덱싱)에 해당하는 수를 불러오는 명령인데

i가 0부터 x.length 즉 x의 길이만큼 증가하기에 charAT(i)는

x.charAT(0)+1x.charAT(1)+1x.charAT(2)+1x.charAT(3)+1

이 되며 이는 입력한 1234에 1+1 2+1 3+1 4+1로 연산된다는 것이다.

이를 y에 저장하기에 앞서 (char)를 사용 형 변환을 해주는데

이 작업이 없으면 아스키코드값으로 50 51 52 53을 반환하기 때문이다.