반복문
- 특정 실행코드를 반복적으로 수행시켜줌
- 크게 for문과 while문(do-while)으로 나뉨
FOR문
- 초기식 : 반복문이 시작될 때 초기에 단 한번만 실행되는 구문
- 반복문에서 사용할 변수 선언 및 초기화
- 예) int i = 0;
- 조건식 : "반복문이 수행될 조건"을 작성하는 구문
- 조건식이 true일 경우 반복문 실행, false면 종료
- 예) i <10;
- 증감식 : 반복문을 제어하는 변수값을 증감시키는 구문
- 예) i++ , i+=1
- for문 실행 과정
초기식 -> 조건식 -> true일 경우 실행할 코드를 실행 -> 증감식
… -> 조건식 -> false일 경우 코드를 실행하지 않고 for반복문 종료. - 초기식, 조건식, 증감식에 아무것도 안 쓰면 무한반복 (for(;;))
- 초기식 선언 변수는 for문 안에서만 사용 가능하고, 다른 for문에서도 같은 이름으로 반복적으로 선언이 가능하다
- 증감식은 상관 없지만 후위연산자로 쓰는게 관례
for(초기식; 조건식; 증감식 ){ //세미콜론으로 구분해서 표현. 세미콜론을 안쓰면 에러남
// 반복적으로 실행시킬 코드
}
문자열의 길이를 구하는 메소드 : length()
Scanner sc = new Scanner(System.in);
System.out.print("문자열 입력 : ");
String str = sc.nextLine();
// kiwi 문자열의 길이 : 4
// kiwi의 마지막 인덱스의 위치 : 3
// 추출하고자 하는 인덱스값의 범위는 0 ~ (문자열의 길이 -1) 까지 매번 1씩 증가
for(int i = 0; i < str.length(); i++ ) {
System.out.println(str.charAt(i));
}
- return을 사용해야 하는 이유
public void method12() {
// 사용자가 입력한 단을 출력
Scanner sc = new Scanner(System.in);
System.out.print("단 수(2~9) 입력 : ");
int dan = sc.nextInt();
// 이때 , 사용자가 잘못 입력하는것을 대비해보기
// 2~9사이의 단수를 입력한경우-> 해당 단수 출력
if(!(dan >= 2 && dan <= 9)) {
System.out.println("잘못입력했씁니다. 2~9사이의 정수를 입력해주세요");
method12();
return;
//return을 안 써주면 처음 잘못 입력한 단까지 출력됨
//(다시 올바른 단을 입력하고 반복문이 완료되면 본인을 호출한 곳인
// method12()로 돌아가고 아래 반복문까지 다시 실행)
}
for(int i =1; i<=9; i++) {
System.out.printf("%d X %d = %d \\n", dan , i, dan*i);
}
// 잘못입력한경우 -> 잘못입력했씁니다. 2~9사이의 정수를 입력해주세요 -> 다시한번 입력받기
}
- for문 실습문제
public void practice7() {
// 정수 두 개와 연산자를 입력 받고 입력된 연산자에 따라 알맞은 결과를 출력하세요.
// 단, 해당 프로그램은 연산자 입력에 “exit”라는 값이 들어올 때까지 무한 반복하며
// exit가 들어오면 “프로그램을 종료합니다.”를 출력하고 종료합니다.
// 또한 연산자가 나누기이면서 두 번째 정수가 0으로 들어오면
// “0으로 나눌 수 없습니다. 다시 입력해주세요.”를 출력하며,
// 없는 연산자가 들어올 시 “없는 연산자입니다. 다시 입력해주세요.”라고 출력하고
// 두 경우 모두 처음으로 돌아가 사용자가 다시 연산자부터 입력하도록 하세요.
for(;;) { // 무한반복
System.out.print("연산자(+, -, *, /, %) :");
String op = sc.nextLine();
if(op.equals("exit")) {
System.out.println("프로그램을 종료합니다.");
return;
}
System.out.print("정수 1: ");
int num1 = sc.nextInt();
System.out.print("정수 2: ");
int num2 =sc.nextInt();
int result = 0;
sc.nextLine();
switch(op) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if( num2 == 0) {
System.out.println("0으로 나눌수 없습니다. 다시 입력해주세요");
practice7();
return;
}
result = num1 / num2;
break;
case "%":
if( num2 == 0) {
System.out.println("0으로 나눌수 없습니다. 다시 입력해주세요");
practice7();
return;
}
result = num1 % num2;
break;
default :
System.out.println("없는 연산자입니다. 다시 입력해주세요");
practice7();
return;
}
System.out.printf("%d %s %d = %d", num1, op, num2 , result);
}
}
public void practice10() {
System.out.print("정수 입력 : ");
int num = sc.nextInt();
for(int j = 0; j < num; j++) {
for(int i =0; i<num; i++) { // 4번반복
// 0 1 2 3
// 3 2 1 0
System.out.print( i < (num-1) - j ? " " :"*");
}
System.out.println();
}
}
'JAVA > 1. 자바 언어 기초' 카테고리의 다른 글
[JAVA] 분기문 : Break, Continue문 (0) | 2023.11.16 |
---|---|
[JAVA] 반복문 : while, do while문 (0) | 2023.11.16 |
[JAVA] 조건문 : if문, switch문 (0) | 2023.11.16 |
[JAVA] Math.random 메소드 (0) | 2023.11.16 |
[JAVA] NaN, Infinity (0) | 2023.11.16 |