일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자바변수
- 자바연산자
- 맥 데이터베이스
- 자바거스름돈
- 자바연산
- 맥북 개발
- 자바실수
- 맥 오라클
- 자바공부
- Mac db
- 맥os 데이터베이스
- 자바계산
- 맥 sql설치
- 자바복습
- 맥북 데이터베이스
- 자바 복습
- 자바 커피
- 자바연산자사용
- javareview
- java
- java거스름돈구하기
- 자바 공부
- 맥북 데이터베이스 설치
- 자바 거스름돈구하기
- Mac Sqlplus
- mac oracle
- 자바
- Today
- Total
DevTagebuch
for 문 사용하여 입력된 문자열 거꾸로 출력하기 본문
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int i;
System.out.print("Input Words");
String str=s.nextLine();
for(i=str.length()-1;i>=0;i--) {
System.out.printf("%c",str.charAt(i));
}
}
입력된 문자열을 받기 위해 String 타입 변수 선언 필요.
출력은 맨 뒤에서 부터 하는 것이기 때문에 for문의 시작점은 입력한 문자의 맨 마지막 글자.
.length() 는 입력된 문자열의 길이를 구하는 메소드.
.charAt(i) 는 입력된 문자열에서 i번째에 있는 문자를 구하는 메소드.
자바에서 문자열이 입력되면 1번째부터 세어지는게 아니라 0번째 부터 시작함.
예를 들면, 12345를 입력했을때 세 번째 문자는 3이 아닌 4가 되는 것. 왜냐면 0번째 문자가 1이 되기 때문에!
그래서 str.length()에 -1을 해주는 것.
즉, 내가 원하는 n번째의 문자를 구하고 싶다면 -1을 해줘야 내가 생각한 그 값이 나옴.
만약 for(i=str.length();i>-0;i--) 문을 런 해본다면 순서는 이렇게 된다.
1. 입력한 문자열의 크기가 i에 저장됨. (abcde를 입력했다면 i에는 5가 저장됨)
2. i>=0 비교. 5가 0보다 크니까 통과 밑에 실행문으로 이동.
3. str.charAt(5) 5번째 문자(%c)를 입력.
근데 자바에서는 항상 우리가 생각하는 1번째 문자를 0번째 문자로 받아들이기 때문에 5글자를 입력했다면 최대 입력된 n번째는 4번째가 됨.
a b c d e 글자수 5
0 1 2 3 4 번째 글자
4. 5번째 문자는 없는 셈이니 Error.
For(i=str.length()-1;i>-0;i--)문을 실행해보면
1. 문자열의 크기 5에서 1을 뺀 4가 i에 저장.
2. i>=0비교. 4가 0보다 크다. 참=>실행
3. str.charAt(i) 는 str입력된 문자열에서 4번째 글자. 즉 abcde 에서 e를 입력하게 됨.
4. 포문 처음으로 돌아감.
5. 이때는 i-- 증감식 실행. i--란 i의 값을 1씩 줄여나가는 것.
6. 그렇게해서 i의 값은 3이 되었고 3>=0 참이기 때문에 계속 실행하다가
7. 0 값에서 i--실행시 -1이 되므로 i>=0이라는 조건식에 반하게 되어 출력 중지.
'Java > Do it' 카테고리의 다른 글
거스름돈 구하기_1 (0) | 2020.04.19 |
---|---|
두 실수의 연산 (0) | 2020.04.19 |
기본 자바형 크기 구하기 (0) | 2020.04.18 |
원하는 진수변환과 값 입력 후 출력 (Scanner, If) (0) | 2020.04.18 |
임의의 정수를 받아 진법 변환 하기 (0) | 2020.04.18 |