java 에서는 반복적인 수행을 할 수 있도록 만들어주는 명령어가 존재합니다.
- 반복문의 종류는 3가지 존재합니다.
1) While문
2) D0{ } While 문
3) For 문
각각 반복문에 대해서 예시를 통해 자세히 설명하겠습니다.
1) While 문
● 기본 형식
while(조건식) //조건식 안에는 booleal(True or False) 값이 옵니다.
{
실행문장;
…
}
package 반복문;
public class WhileBasic {
public static void main(String[] args) {
int num = 1, result = 0;
while(num < 5) {
System.out.println("명령문 실행 :" + num);
num++;
}
주의할점!!
int num = 1;
while(num < 5) {
System.out.println("명령문 실행 :" + num); 이대로 명령문을 실행하면 1이 반복해서 출력된다. }
이대로 실행 시키면 강제로 멈추 않는한 반복해서 1이 출력합니다.
그렇기 때문에 조건에 맞추어서 num의 값이 증가할 수 있도록 증감연산자를 이용하여 값이 증가하도록 해줍니다.
예시)
1~100의 값을 더한 값을 출력하세요.
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int num= 1, result = 0;
while (num<=100) {
result += num;
num++;
}
System.out.println("1~100의 합 : " + result);
- 계산 값이 int의 범위를 넘는지 넘지 않는지 확인해야합니다.
2) D0{ } While 문
● 기본형식
do{
실행문장;
…
} while(조건식); // 조건식 안에는 boolean(True or False)의 값이 옵니다.
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int num = 0, result = 0;
do {
num++;
System.out.println(num);
}while(num<5);
: 결과 값으로 1~5까지 출력 됩니다.
그렇다면 위의 while 문과 do {} while 문의 차이점은 무엇일까요?
: do while 문은 한번은 실행을 한 이후에 조건을 체크하고, while 문은 처음부터 조건을 확인하기 때문에 한번도 출력되지 않을 수 있습니다.
예시)
1~100의 값을 더한 값을 출력하세요. (누적값 , 카운팅 값, 총 합을 출력하세요.)
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int num = 1; int result = 0;
do {
result+=num;
System.out.println("카운팅 값 : " + num);
num++;
System.out.println("누적값 : " +result);
}while(num<=100);
System.out.println("1~100의 합 : " +result);
3) For 문
: 두괄식으로 조건이 제시되기 때문에 가독석이 좋아서 개발자들이 가장 많이 사용하는 반복문 입니다.
● 기본형식
for(초기식; 조건식; 증감식)
{
실행문장;
…
}
package 반복문;
public class 반복문{
public static void main(String[] args) {
int result = 0;
for(int num=1;num<=5;num++) {
System.out.println(num);
}
● for을 이용한 활용식
⑴ 1~100사이의 (양의) 짝수를 출력하시오.
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int result = 0;
for(int num=1;num<=100;num++) {
if(num%2==0) {
System.out.println(num);
}
}
- if 조건문을 활용하여 2로 나누었을 때 나머지의 값이 0이 되면 짝수 이므로 그 값을 출력하도록 합니다.
⑵ *1~100 사이의 5의 배수이면서 7의 배수를 출력하시고, 5의 배수 이거나 7의 배수를 출력하여주세요.
*1~100 사이의 (양의) 짝수를
5와 7의 배수
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int result = 0;
for(int num=1;num<=100;num++) {
if((num%5==0)&&(num%7==0)) {
System.out.println(num);
5의 배수 이거나 7의 배수
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int result = 0;
for(int num=1;num<=100;num++) {
if((num%5==0)||(num%7==0)) {
System.out.println(num);
if 조건문 안에 논리연산자를 이용하여 and의 기능이 필요할 때 && 를 사용하고, or 의 기능이 필요할 때 || 를 사용합니다.
기타) Breake, Continue
각각 예시를 통해서 설명하겠습니다.
Breake) 그 식 안에서 나가도록 만드는 명령어 입니다.
Q) 1~100 사이의 5의 배수 이면서 , 7의 배수인 첫 정수만 출력하시오.
package 반복문;
public class 반복문 {
public static void main(String[] args) {
int result = 0;
for(int num=1;num<=100;num++) {
if((num%5==0)&&(num%7==0)) {
System.out.println(num);
break;
}
}
결과값 = 35 // 처음 결과를 받고 위의 코드에서 나오게 만들어주는 명령어 입니다.
Continue)
for 문 안에서는 끝으로 이동해 가라고 명령해주고, while 문과 do while 문에거서는 조건으로 돌아가도록 만듭니다.
package 반복문;
public class 반복문 {
public static void main(String[] args) {
for(int num=1;num<=100;num++) {
if((num%5 != 0)||(num%7 != 0)) {
System.out.println(num);
continue;
}
}
continue; num=1일때, (num % 5 != 0) 의 값은 true 이므로 num++로 올라가게 해준다.
지금까지 공부한 것중에 가장 많이 사용되는 if의 예제를 조금 더 풀어보도록 하겠습니다.
① 구구단 2단을 출력하세요.
package 구구단;
public class 2단{
public static void main(String[] args) {
for(int num=1;num<=9;num++){
System.out.println("2 x "+ num + " = " + (2*num));
}
② 구구단 전체를 출력하세요. (가로 , 세로)
package 구구단;
public class 구구단 세로 출력{
public static void main(String[] args) {
for(int num=2;num<=9;num++){
for(int i=1;i<=9;i++)
System.out.println(num+" x " +i+ " = " + (i*num));
}
package 구구단;
public clas 구구단 가로 출력 {
public static void main(String[] args) {
for(int num = 2; num <=9; num++) {
for (int i = 1; i <=9;i++) {
System.out.print(num + " x " + i + " = " + (num*i)+ " ");
}System.out.println();
}
}
③ ( * ) 모양을 사용하여 반쪽짜리 tree 모양 과 역 tree모양을 출력하세요.
package 반 tree;
public class 반 tree {
public static void main(String[] args) {
for(int num=1; num<=10 ; num++){
for(int i=1 ; i<=num ; i++) {
System.out.print("*");
}System.out.println();
}
}
package 반 역 tree;
public class 반 역 tree {
public static void main(String[] args) {
for(int num=10; num>=1 ; num--){
for(int i=1 ; i<=num ; i++) {
System.out.print("*");
}System.out.println();
}
}
// while 조건으로
// do while 조건으로
'빅데이터 > JAVA' 카테고리의 다른 글
[JAVA] 객체지향언어(Object oriented Programming) [Class, new] (0) | 2020.04.26 |
---|---|
[JAVA] METHOD (0) | 2020.04.25 |
[JAVA] 조건문(If , Switch) (0) | 2020.04.22 |
[JAVA] 자료형변환(Type Casting) (0) | 2020.04.22 |
[JAVA] 연산자 (Operator) (0) | 2020.04.21 |