반응형
스터디 정리
양수만 입력하기
class SumFor {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("1부터 n까지의 합을구합니다."); // 키보드 깂을 입력 받는 stdIn.nextInt()보다 앞에 입력
System.out.print("n의 값:");
int n = stdIn.nextInt(); // 키보드 입력 값 중 정숫값 얻어내기
int sum = 0; // 합
for (int i = 1; i <= n; i++)
sum += i; // sum에 i를 더합니다.
System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
}
}
위의 코드에 음수를 입력 할 경우 1부터 n까지 합은 0이 된다.
이는 수학적으로 정확한 표현이 아니며 양수만 n값으로 입력 가능하도록 하여야 한다.
n의 값이 양수가 들어 올때까지 함수를 반복하고, n의 값이 양이 될 경우 1부터 n 까지의 합을 구하는 코드로 변경하기
package chap01Ex;
import java.util.Scanner;
// 1, 2, …, n의 합을 구합니다(양수만 입력).
class SumForPos {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
int n;
System.out.println("1부터 n까지의 합을구합니다.");
do {
System.out.print("n의 값:");
n = stdIn.nextInt();
} while (n <= 0);
int sum = 0; // 합
for (int i = 1; i <= n; i++)
sum += i; // sum에 i를 더함
System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
}
}
do문은 일단 루프 본문을 한 번 실행한 다음에 계속 반복할 것인지를 판단하는 사후 판단 반복문
n이 0보다 작거나 같을 경우 반복문 계속 실행
사전판단, 사후판단 문 차이
사전판단 - while, for문
사후판단 - do while문
package chap01Ex;
import java.util.Scanner;
// 1, 2, …, n의 합을 구합니다.
class SumWhile {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("1부터 n까지의 합을구합니다.");
System.out.print("n의 값:");
int n = stdIn.nextInt();
int sum = 0; // 합
int i = 1;
while (i <= n) { // i가 n 이하면 반복합니다.
sum += i; // sum에 i를 더합니다.
i++; // i 값을 1만큼 증가시킵니다.
}
System.out.println("1부터 " + n + "까지의 합은 " + sum + "입니다.");
}
}
while문은 어떤 조건이 성립하는 동안 처리를 반복하여 실행
하나의 변수를 사용 하는 경우에는 for문 사용이 좋다.
연습문제1. 두 변수 a,b에 정수를 입력하고 b-a를 출력 (조건 : b>a)
package chap01Practice;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
int a;
int b;
do {
System.out.print("a입력 : ");
a = stdIn.nextInt();
System.out.print("b입력 :");
b = stdIn.nextInt();
} while (a<b);
System.out.println("a-b는 " + (a-b) + "입니다");
}
}
a가 b보다 작을 경우 계속 a,b를 다시 입력 하여 a가 b보다 클경우 빠져 나옴
연습문제1 해답코드
package chap01Practice;
import java.util.Scanner;
// 정수 b에서 정수 a를 뺀 값을 구합니다(b > a가 되도록 입력 받음)
class Difference_01_10 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("a의 값:");
int a = stdIn.nextInt();
int b=0;
while (true) {
System.out.print("b의 값:");
b = stdIn.nextInt();
if (b > a)
break;
System.out.println("a보다 큰 값을 입력하세요!");
}
System.out.println("b - a는 " + (b - a) + "입니다.");
}
}
a를 입력 받은 후 무한 while 루프 돌리면서 조건문에 맞을 경우 break; 아닐 경우 b값 계속 다시 입력
반응형
'개발 > algorithm' 카테고리의 다른 글
[java][algorithm] 배열 역순으로 정렬하기, 배열 뒤집기 (0) | 2018.10.07 |
---|---|
[java][algorithm] 배열의 최댓값 구하기 (0) | 2018.10.07 |
[java] 반복 - 피라미드 만들기 (★) (0) | 2018.10.07 |
[java] 반복 - 구조적 프로그래밍 / 다중 루프 / 구구단 / 정사각형 만들기 (0) | 2018.10.07 |
[java] 반복 - 1부터 n까지의 정수 합 구하기 (0) | 2018.10.07 |