i++는 내부적으로 다음과 같이 동작한다.

1. i의 현재 값을 보관한다. (현재 실행되는 명령문에서는 이 보관된 값이 사용되어야 하니까)

2. i의 값을 1 더한다.

3. 보관했던 값을 반환한다.


++i는 내부적으로 다음과 같이 동작한다.

1. i의 값을 1 더한다.

2. i의 값을 반환한다.



'내 첫사랑! 컴퓨터 프로그래밍' 카테고리의 다른 글

개발자의 조건?!  (0) 2017.01.04
접근제한자란  (0) 2017.01.02
static 변수에 대해서  (0) 2016.12.06
if문에서 break 명령 사용의 의미  (0) 2016.12.03
Error클래스와 Exception클래스 비교  (0) 2016.03.28
import java.io.*;
public class Room_mgmt_2 {
   public static void main(String[] args) throws IOEception {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


      boolean status = true, stat = true;
      int numoffloor = 0;
      int menu = 0;
      int fn = 0;
      System.out.println("================================");
      System.out.println("\thotel management");
      System.out.println("================================");
      System.out.println("Number of floors = ");
      numoffloor = Integer.parseInt(in.readLine());
      System.out.println();
      int[] numofroom = new int[numoffloor];
      String[][] roomname = new String[numoffloor][];
      String[][] guestname = new String[numoffloor][];
      int[][] numofparty = new int[numoffloor][];
      int[][] charge = new int[numoffloor][];
      int[][] days = new int[numoffloor][];
      for(int i=0;i<numoffloor;i++) {
           System.out.print("Number of rooms of floor " + (i+1) + "=");
           numofroom[i] = Integer.parseInt(in.readLine());
           System.out.println();
           roomname[i] = new String[numofroom[i]];
           guestname[i] = new String[numofroom[i]];
           numofparty[i] = new int[numofroom[i]];
           charge[i] = new int[numofroom[i]];
           days[i] = new int[numofroom[i]];
           System.out.println("Basic Data floor #" + (i+1) + ":");
           for(int j=0;j<numofroom[i];j++) {
                System.out.println("  Basic Data for Room #" + (j+1) + " : ");
                System.out.println("    Room name = ");
                roomname[i][j] = in.readLine();
                System.out.print("      Charge for 1 day = ");
                charge[i][j] = Intger.parseint(in.readLine());
           }
      }


      do {     
          System.out.println(" 1 : Check in / 2 : Check out / 3 : Room Information / 0 : Exit");
          System.out.print("Type Menu (0~3) = ");
          menu = Integer.parseInt(in.readLine());
          System.out.println();


          stat = true;


          switch (menu) {
              case 0:
                  status = false;
                  break;
              case 1:
                  do {
                      stat = false;
                      System.out.print(" Check in Floor = ");
                      fn = Integer.parseInt(in.readLine());
                      if(fn <= 0 || numofloor < fn) stat=true;
                  } while (stat);
                  fn--;
                  stat=true;
                  System.out.println();
                  System.out.println("\tFloor = " + (fn + 1));
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                      System.out.println("\tRoom #\t Room Name\t Charge/day\t Guest\t Num of party");
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                  for(int i=0;i<numofroom[fn];i++)
                      System.out.println("\t" + (i+1) + "\t " + roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                      System.out.println("\t==========\t ==========\t ==========\t ==========");
                  do {
                      System.out.print(" Check in Room Number ( 0 = cancel ) = ");
                      int rn = Integer.parseInt(in.readLine());
                      if(rn == ) break;
                      --rn;
                      if(0<=rn && rn < numofroom[fn] && guestname[fn][fn] == null) {
                          stat = false;
                          System.out.print(" Guest name = ");
                          guestname[fn][fn] = in.readLine();
                          System.out.print(" Number of party = ");
                          numofparty[fn][fn] = Integer.parseInt(in.readLine());
                          System.out.print(" Number of day = ");
                          days[fn][rn] = Integer.parseInt(in.readLine());
                      }
                   } while (stat);
                   break;
             case 2:
                 do {
                     stat = false;
                     System.out.print(" Check out Floor = ");
                     fn = Integer.parseInt(in.readLine());
                     if(fn <= 0 || numofloor < fn) stat=true;
                 } while(stat);
                 fn--;


                 stat = true;
                 System.out.println();
                 System.out.println("\tFloor = " + (fn + 1));
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println("\tRoom #\t Room Name\t Charge/day\t Guest\t Num of party");
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                 for(int i=0; i<numofroom[fn]; i++)
                         System.out.println("\t" + (i+1) + "\t " + roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                 do {
                     System.out.print(" Check out Room Number ( 0 = cancel ) = ");
                     int rn = Integer.parseInt(in.readLine());
                     if(rn == ) break;


                     --rn;
                     if( 0 <= rn && rn < numofroom[fn] && guestname[fn][fn] != null) {
                           stat = false;
                                   System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                                   System.out.println("\t" + (rn+1) + "\t " + roomname[fn][fn] + "\t " + charge[fn][rn] + "/day");
                                   System.out.println("\t\t  " + guestname[fn][rn] + " (" + numofparty[fn][rn] + ")\t \" + days[fn][rn] * charge[fn][rn] + "/" + days[fn][rn] + " days");
                                   System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                                   guestname[fn][rn] = null;
                                   numofparty[fn[prn] = 0;
                                   days[fn][rn] = 0;
                                }
                              } while (stat);
                              break;
             case 3:           
                for (fn = 0; fn < numoffloor; fn++) {
                     // System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println();
                     System.out.println("\tFloor = " + (fn + 1));
                      System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     System.out.println("\tRoom #\t  Room Name\t Charge/day\t Guest\t Num of party");
                     System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                     for (int i = 0; i < numofroom[fn]; i++)
                          System.out.println("\t" + (i+1) + "\t "+ roomname[fn][i] + "\t " + charge[fn][i] + "/day\t " + guestname[fn][i] + "\t " + numofparty[fn][i]);
                          System.out.println("\t==========\t ==========\t ==========\t  =====\t==========\t =====\t ============");
                }
                break;
             default:
                 System.out.println("illegal menu1");
          } 
        } while (status);
        System.out.println("Good Luck! Bye");
     }
}



 

 import java.io.*;
public class Grade_of_school {
   public static void main (String args[]) throws IOException {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      int numofclass = 0, numofcture = 0;
      System.out.println("================================");
      System.out.println("\tAll of My School");
      System.out.println("================================");
      System.out.println("Number of classes = ");
      numofclass = Integer.parseInt(in.readLine());
      System.out.println();
      int[][] studentdata = new int[numofclass][][];
      int[] numofstudent = new int[numofclass];
      String[][] studentname = new String[newofclass][];
      float[][] studentavg = new float[numofclass][];
      System.out.println("Number of lectures = ");
      numoflecture = Integer.parseInt(in.readLine());
      System.out.println();
      System.out.println("======================================");
      System.out.println("\tInput Data!");
      System.out.println("======================================");
      for(int i=0;i<numofclass;i++) {
           System.out.print("Number of students in clas " + (i + 1) + "=");
           numofstudent[i] = Integer.parseInt(in.readLine());
           System.out.println();
           studentdata[i] = new int[numofstudent[i][numoflecture+3];
           studentname[i] = new String[numofstudent[i]];
           studentavg[i] = new float[numofstudent][i];
           System.out.println((i+1) + "th Class Data :");
           for(int j=0;j<numofstudent[i];j++){
                System.out.println("     " + (j+1)+"th Student Data : ");
                System.out.print("          Name : ");
                studentname[i][j] = in.readLine();
                for(int k=0;k<numoflecture;k++) {
                    int score = 0;
                    do {
                        System.out.print("    " + (k+1) + "th lecutre score (0~100): ");
                        score = Integer.parseInt(in.readLine());
                    } while ( score < 0 || 100 < score);
                    studentdata[i][j][k+3] = score;
                    studentdata[i][j][2] += score;
                }
                studentavg[i][j] = (float)studentdata[i][j][2] / numoflecture;
                studentdata[i][j][0] = 1;
                studentdata[i][j][1] = 1;
            }
            System.out.println();
            for(int j=0;j<numofstudent[i];j++)
                for(int k=0;k<numofstudent[i];k++)
                    if(studentdata[i][j][2] < studentdata[i][k][2])
                         studentdata[i][j][1]++;
      }
      for (int i=0li<numofclass;i++)
           for(int j=0;j<numofstudent[i];j++)
              for(int m=0;m<numofclass;m++)
                  for(int n=0;n<numofstudent[m];n++)
                      if(studentdata[i][j][2] < studentdata[m][n][2])
                           studentdata[i][j][0]++;
      System.out.println("==================================");
      System.out.println("\tStudent Informations");
      System.out.println("==================================");
      for(int a=0;a<numofclass;++a) {
           System.out.print("Class\tNum\tName\tT_grade\tC_grade\tSum\tAvg);
           for(int k=0;k<numoflecture;k++)
               System.out.print("\tLect " + (k + 1));
           System.out.println();
           for(int b=0;b<numofstudent[a];++b){
                System.out.print((a+1) + "\t" + (b+1) + "\t" + studentname[a][b] + "\t");
                for(int i=0;i<3;++i)
                     System.out.print(studentdata[a][b][i] + "\t");
                System.out.printf("%.2f\t", studentavg[a][b]);
                for(int i=0;i<numoflecture;++i) {
                     System.out.printf(studentdata[a][b][i+3] + "\t");
                }
                System.out.println();
           }
           System.out.println();
      }
      System.out.println();
      System.out.println("Good Luck! Bye~");
   }
}           

 

 

# While 문은 미리 반복 횟수를 알 수 없고 조건에 따라 반복하는 경우에 사용한다.

   조건이 만족되면 반복을 계속하는 구조!

 

# 무한 루프는 조건식으로 true를 적으면 된다.

 

static으로 선언된 변수, 클래스 변수라고 한다.


그 이유인즉, static으로 선언된 변수는

변수가 선언된 클래스의 모든 인스턴스(객체)가 공유할 수 있는 변수이기 때문이다.


의문을 갖다고 생각해보면

우리 네트워크로 연결되어있는 컴퓨터의 폴더를 공유를 하면

다른 사람들도 볼 수 있고, 권한도 부여해주면 다른 사람이 수정도 가능하다.


그럼 어떻게 할까?

마지막에 수정한 파일만이 존재한다.


※ 수정 권한을 주지 않을 때는 final로 선언하면 되겠다.



System.in.read()

콘솔 창에서 입력을 받는 함수이다.

콘솔창에 입력 되는 값은 모두 아스키코드 값으로 입력받는다.

  예 1) A를 입력 받으면 A의 아스키 코드값인 65가 입력된다. ​

  예 2) 숫자 0을 입력받으면 아스키 코드값인 48이 입력된다.

활용방법

 

예 1)

    ​char a = (char) System.in.read();

    이 함수가 입력되는 것은 0~255까지의 아스키코드 값이므로 char형으로 받고 싶다면 형변환을

   ​ 하여서 받아야한다.​

예 2)

    int a = System.in.read() - 48;

    숫자를 문자로 인식하기 때문에 해당 숫자의 아스키코드값을 입력받게된다. 따라서 0의 아스키

​    코드값인 48을 빼주어서 입력받는다.

**예외 처리가 필요한 함수이다.

import java.io.*;

public static void main(String[] arg) throws java.io.IOException{}​

System.in.readLine()​

read()의 활용함수. 즉 콘솔창에서 라인 전체를 읽어온다. 이 때, 엔터키 또한 라인에 포함되어서 읽어지는 것과 엔터키는 이 함수가 알아서 처리한다는 점을 주의해야한다.​

 

 

<read.line() 함수 관련 예제>

import java.io.*;
public class Exam_08 {
   public static void main(String[] ar) throws IOException{
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


      int inwon = 0;
      String[] name = null;
      int[] age = null;


      System.out.println("인원 =");
      inwon = Integer.parseInt(in.readLine());
      name = new String[inwon];
      age = new int[inwon];


      for(int i=0; i<inwon; ++i){
          System.out.println(i+1+"번째 사람의 이름 = ");
          name[i] = in.readLine();
          System.out.println(i+1+"번째 사람의 나이 =");
          age[i] = Integer.parseInt(in.readLine());
      }


      System.out.println();
      for(int i=0;i<inwon;++i){
          System.out.println(i+1+":"+name[i] + ":"+age[i]);
      } 

 

 

if문에서 break명령의 사용의미는 "if문에 있는 블록을 제외하고 가장 가까이 있는 블록"을 의미합니다.

예를들어 아래와 같은 코드가 있다면,


public class Exam_11 {

     public static void main(String[] arg) {
           for(int i = 0; i < 5; ++i) {
               if(i == 2) {
                  break;
               }
               System.out.println("*");
           }
     }
}


위 코드에서 break문의 의미는 if문이 있는 블록을 제외한 가장 가까운 블록이

System.out.println("*"); 아래 있는 }(괄호)로 이동되어 프로그래밍 코드가 수행이 되게 된다. 


         

'내 첫사랑! 컴퓨터 프로그래밍' 카테고리의 다른 글

개발자의 조건?!  (0) 2017.01.04
접근제한자란  (0) 2017.01.02
증감연산자 i++와 ++i의 차이  (0) 2016.12.12
static 변수에 대해서  (0) 2016.12.06
Error클래스와 Exception클래스 비교  (0) 2016.03.28

Error 클래스

동적 연결 실패 또는 다른 심각한 오류가 자방 가상 머신에서 발생했을 때 가상머신은 Error 객체를

발생시킨다. 간단한 프로그램에서는 일반적으로 Error 객체를 던지거나 처리하지 않는다.


Exception 클래스

대부분의 프로그램들은 Exception 클래스로부터 파생된 예외객체를 던지고 처리한다. Exception 객

체는 프로그램에 문제가 발생했음을 알려준다. 하지만 이것은 심각한 시스템의 문제는 아니다. 대부

분의 프로그램은 Error와는 달리 발생한 Exception을 처리하는 코드를 작성한다.


자바 플랫폼은 많은 Exception 클래스의 상속클래스를 정의하고 있다. 이런 상속 클래스들은 프로그

램에서 발생할 수 있는 여러 타입의 예외를 나타낸다. 예를 들어 IllegalAccessException은 특정 부분

의 메소드를 찾을 수 없다는 신호이고, NegativeArraySizeException은 배열이 음수의 사이즈로 생성되

는 것을 감지했음을 나타내는 신호이다.


Exception 서브클래스인 RuntimeException은 API를 잘못된 방법으로 사용하는 경우 나타나는 예외이

다. 예를 들어 NullPointerException은 메소드가 객체를 참조할 때 null값을 참조하는 객체를 사용하는

경우 나타나는 예외이다.

'내 첫사랑! 컴퓨터 프로그래밍' 카테고리의 다른 글

개발자의 조건?!  (0) 2017.01.04
접근제한자란  (0) 2017.01.02
증감연산자 i++와 ++i의 차이  (0) 2016.12.12
static 변수에 대해서  (0) 2016.12.06
if문에서 break 명령 사용의 의미  (0) 2016.12.03
Total
Today
Yesterday