Dev/Java

[java] 반복문

창문닦이 2019. 1. 21. 22:16

mport java.util.Scanner;

class Test1 {

           

            public static void main(String[] args) {

                         

/*               

                 반복문(for,while,do~while)

                 for:시작과 끝 값이 정해져있을 때

                 while:끝 값이 정해져있지 않을 때

                 do~while:1번은 무조건 실행시키고 확인해야 할때

*/

                          //선언

                          Scanner sc = new Scanner(System.in);

                          int dan;

                         

                          //입력

                          System.out.print("단 입력?");

                          dan = sc.nextInt(); //Scanner 안에 있는 메소드 : nextInt() 반드시 Scanner 가 먼저 정의되어 있어야 함

                          //for(초기값;최대값_조건;증가값)

                          for (int i=1;i<=9;i++) {

                                       //System.out.println(dan + " * " + i + " = " + (dan*i));

                                       System.out.printf("%d * %d = %d\n",dan, i, dan*i);

                          }

                          System.out.println("------------------------------------------");

                          //while문은 일반적으로 초기값을 0으로 설정함.

                          //배열을 사용할 경우 첫번째 배열이 [0]인 걸 활용하기 위해

                         

                          //while(조건) 몇번 돌려야 할지 모를떄 대부분 사용.

                         

                          int j=0; //나중에 배열을 사용할 때 편하게 하기 위해서 0으로 시작. 무조건은 아님.

                          while (j<9) {                                    

                         

                                       j++;

                                       System.out.printf("%d * %d = %d\n",dan, j, dan*j);

                         

                          }

                         

                          System.out.println("------------------------------------------");

                          //do~while(조건문); 세미콜론 잊으면 안됨. 1번은 무조건 바로 실행이 된다.

                          int k=0;

                          do {

                                       k++;

                                       System.out.printf("%d * %d = %d\n",dan, k, dan*k);                           

                          } while (k<9);

                          System.out.println("------------------------------------------");                         

/*               

                 //무한루프. 조건문이 true면 실행.계속 반복실행

                 while (true) {

                          System.out.println("돌아간당");

                 }

*/

                          sc.close(); //일종의 스트림이기 때문이 사용한 후 닫아주거나 null로 초기화 시켜야 함. 그렇지 않으면 쓰레기값이 남아있을 수 있음

                          //하지만 Scanner는 알아서 초기화시켜줘서 오류는 안남!

                         

            }

}

실행결과




import java.io.BufferedReader;

import java.io.InputStreamReader;

class Test2 {

            public static void main(String[] args) throws Exception {

                          // throws IOException : 예외처리

                          // java.lang.Exception : Exception Class 확인하면 서브클래스 모두 확인 가능

                          // 무슨 예외처리인지 클래스를 모르겠다면 Exception 으로 처리해도 됨. 상위클래스.

                          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

                          int su, sum;

                          char ch; // 'y' or 'n' 한 단어를 받고자 함

                          // 무한루프 사용. 계속 이용해야되는 경우

                          while (true) {

                                       // 조건을 만족하면 실행되고 false면 종료.

                                       do {

                                                    System.out.print("수 입력해주세요 : ");

                                                    su = Integer.parseInt(br.readLine());

                                                    // 100+enter 입력되면 엔터를 지우고 100입력. br.readLine()은 엔터까지 입력이 됨

                                       } while (su < 1 || su > 5000); //1보다 작거나 5000을 넘을 경우 True가 되서 종료.

                                       sum = 0; // 변수 초기화. 해주지 않으면 누적 합계로 처리됨

                                       // 1~su까지의 합계

                                       for (int i = 1; i <= su; i++) {

                                                    sum = sum + i; // sum+=i

                                       }

                                       // 출력

                                       System.out.println("1~" + su + "까지의 합 : " + sum);

                                       // 계속 실행 여부

                                       System.out.print("계속 할래?[Y/N]"); // YN,y,Y,n,N 누르고 enter입력

                                       ch = (char) System.in.read(); // 하나의 유니코드값을 문자로 형변환시켜서 ch에 저장해라

                                       if (ch != 'Y' && ch != 'y') {

                                                    break;

                                       }// Y,y가 아니면 종료하는 조건문 작성. 양쪽이 !=(부정)이면 &&로 작성. 2진수의 보수 때문

                                       System.in.skip(2);

                                       // System.in.skip(2); 없으면 NumberFormatException 발생.

                                       // 앞에 null값을 int형으로 변환하라고 시킨거니까

                                       // Skips over and discards n bytes of data from this inputstream

                                       // enter에 해당하는 ASCII CODE : 10(커서왼쪽정렬)과 13(커서줄바꿈). 둘을 모두 지우기 위해서 2로 설정

                          }// end~while

            }// end~main

}


실행결과





public class Test3 {

            public static void main(String[] args) {

                          // 다중for문. for문이 4중으로 중첩되는 정도까지는 가지 않음. 오버헤드가 크기 때문.

                          // 선언

                          int i, j;

                          for (i = 2; i <= 9; i++) {

                                       System.out.println(i + "단");

                                       for (j = 2; j <= 9; j++) {

                                                    System.out.println(i + "*" + j + "=" + (i * j));

                                       }

                                       System.out.println();

                          }

            }

}


실행결과






'Dev > Java' 카테고리의 다른 글

[java] 배열, 달력만들기  (0) 2019.01.21
[java] for문, switch문  (0) 2019.01.21
[java] 간단한 계산기 만들기  (0) 2019.01.21
[java] 기초  (2) 2019.01.21
[java] 자바 공부 시작  (0) 2019.01.21