예제1 - 문자열 출력하기
문자열을 작성하고 해당 문자열에서 숫자 전까지 문자열을 출력하는 for 문을 작성한다.
//result 값에 ch라는 문자열을 이용해 index 하나하나 축적해서 출력한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
String word = "sup3er007Man";
String result = "";
int i=0;
//배열 풀이 고려해볼 것!
for (; i<word.length(); i++) {
char ch = word.charAt(i);
if(Character.isDigit(ch)) {
break; //i => 5, 문자열이 길이와 동일
} else {
result += ch;
}
}
System.out.print("\n1.최초로 숫자가 나오는 곳의 앞까지 문자열 출력 => "+result);
System.out.println("\n1.최초로 숫자가 나오는 곳의 앞까지 문자열 길이 => "+i);
|
cs |
예제2 - 홀수번 영문자 나열 출력하기
★삼항연산자를 활용하기
홀수번 영문자 나열의 마지막에는 "," 이 오면 안되므로 삼항연산자를 이용해 해당 경우의 수를 제거한다. 짝수번 문자는 출력하지 않으므로 배제를 위해 i%2==0 이란 방식으로 사용한다. 그리고 continue;를 통해 아래 코드가 실행되지 않도록 작성한다.
1
2
3
4
|
for(i='a';i<'z'+1;i++) {
if(i%2==0) continue;
String str = (i<'z'-1)?",":"";
System.out.print((char)i+str);
|
cs |
예제3 - 입력받은 값 사이의 홀짝의 합 구하기
if 문을 활용해 i가 2의 배수라면 홀수의 합계에 아래와 같이 넣어준다. 그리고 else에서 짝수의 합계에 넣어준다.
1
2
3
4
5
|
for(int i=firstNo;i<=secondNo;i++) {
if(i%2 == 0) {
holSum += i;
continue;
} else jjakSum += i;;
|
cs |
예제4 - 구구단 출력하기
레이블 활용하기
break; 문이 두 개 이상일 때, 기본대로 가장 가까운 반복문을 빠져나가는 것이 아니라 원하는 반복문의 탈출로 사용하고자 한다면 레이블을 사용한다. For 문 위에 레이블명: 을 작성하고 break 레이블명; 을 작성한다.
구구단 출력코드 작성에 발생할 수 있는 문제의 모든 경우의 수를 생각해보자.
1. 먼저 구구단을 입력하라고 했을 때, 정수형으로 2~9 사이의 숫자가 아닌 문자, 실수, 그 외 정수형이 입력되는 경우는 배제
2. 구구단 출력 후 다시 구구단 프로그램을 실행할 것인지 여부 확인하기.
이 때, y 나 n 이 아닌 다른 문자, 숫자, 실수가 입력되는 경우는 배제해야 한다. 그리고 대소문자의 여부와 관계없이 출력해야 하므로 .equalsIgnoreCase() 값을 이용해서 작성한다.
//scanner leak;를 방지하기 위해 중복 반복문에서 break;를 작성하는 문구 위에 넣어 불필요한 메모리 낭비를 방지하는 것이 효율적이다.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package my.day07.b.FOR;
import java.util.Scanner;
public class GuguDan1Main { //경우의 수 고려한 구구단 만들기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
outer: // outer: 을 레이블이라고 부르는데 그 레이블명이 지금은 outer일 뿐이다.
for(;;) {
try {
System.out.print("몇 단 볼래? => ");
String strDan = sc.nextLine();
int Dan = Integer.parseInt(strDan);
if(1<Dan&&Dan<10) {
System.out.println("=== "+Dan+"단 ===");
for(int i=1;i<10;i++) {
System.out.println(Dan+"*"+i+"="+Dan*i);
}
for(;;) {
System.out.print(">> 또 하시겠습니까? [Y/N] => ");
String yn = sc.nextLine();
if ("N".equalsIgnoreCase(yn)) { //대소문자 구분하지 않는 경우
System.out.println("== 프로그램 종료 ==");
sc.close();
break outer; // 가장 바깥에서 선언된 for문을 빠져나가야 하는 것이다.
// outer가 레이블명이다.
} else if ("Y".equalsIgnoreCase(yn)) {
break;
} else System.out.println(">>> Y 또는 N만 가능합니다 <<<");
}//end of for ------------------------------------------------
} else
System.out.println(">>> 2단부터 9단까지만 가능합니다 <<<");
} catch (NumberFormatException e) {
System.out.println(">>> 2단부터 9단까지만 가능합니다 <<<");
}
//sc.close(); break;전에 넣어주기
}//end of for-------------------------------------------------
}
}
|
cs |
예제5 - 구구단 전체 출력하기
행렬
출력하고자 하는 값이 행렬형태일 때, 배열을 이용한다. 중접 For문을 이용해서도 행렬형태를 출력할 수 있다. (row은 행, col은 열로 작성)
printf
서식지정자를 지정받아 출력할 수 있다.
System.out.printf("%35s\n","== 구구단 =="); 에서와 같이 %s 는 String 문자열을 출력하는 지정자이고, % 뒤에 숫자를 써서 왼쪽 정렬 기준으로 공백을 두고 문자열을 배치하도록 할 수 있다. 오른쪽 정렬은 음수를 쓰면 된다. 출력 값의 출력 위치를 지정할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
|
public static void main(String[] args) {
System.out.printf("%35s\n","== 구구단 ==");
for (int row=1; row<10; row++) {
for (int col=2; col<10; col++) {
System.out.printf(col+"*"+row+"=%-4d",(row*col));
}
System.out.print("\n");
}
}
|
cs |
다중 For 문의 활용
5*5 행렬 형태에서 4행, 4열을 빼고 작성하고자 하는 경우에는 다음과 같이 if 문의 continue; 으로 해당 행렬 부분을 빼고 출력이 가능하다.
1
2
3
4
5
6
7
8
|
for (i=5; i>0 ;i--) {
if(i==4) continue;
for (j=1; j<6; j++) {
if(j==4) continue;
System.out.print(i+"0"+j+"호\t");
}
System.out.print("\n");
}
|
cs |
'Java' 카테고리의 다른 글
[Java] Random 응용, 배열 (0) | 2021.01.18 |
---|---|
[Java] While , do-While, Math.random() 메서드, Random() 클래스 (0) | 2021.01.16 |
[Java] For 문, 예제 (0) | 2021.01.13 |
[Java] Wrapper, Math 클래스와 if, switch문 (0) | 2021.01.12 |
19 [인강] 자바의정석 ch09 (0) | 2021.01.12 |
- ubuntu
- 북클럽
- 실용주의프로그래머
- 호스팅영역
- putty
- 노마드코더
- LifecycleException
- 독서후기
- SQLD
- jdbc
- filezila
- git연동
- 정보처리기사
- java
- 기술블로그
- intellij
- 정보처리기사 필기
- 정보처리기사 실기
- gradle
- 웹페이지만들기
- EC2
- 개발도서
- JIRA
- 배포
- gradle build
- IT 5분 잡학사전
- 오늘의코딩
- 노개북
- spring
- AWS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |