0. 기본 입력 방법과 함께 제어문을 학습!

 1) main 메소드의 (String [] args)를 이용 

 public class InputTest{
 public static void main(String[] args) {
  for(int i = 0; i<args.length ; i++ )
  {
   System.out.println("args["+i+"] = "+ args[i]);
  }
 }
}

실행 시 입력을 넣어야 한다.

 />java InputTest 사과 딸기 포도 복숭아

 

출력 :

args[0] = 사과

args[1] = 딸기

args[2] = 포도

args[3] = 복숭아

 

 

 2) Scanner 메소드사용

 import java.util.Scanner;
public class InputTest2{
 public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  System.out.println("이름은?"); 
  String name = scanner.next();
  System.out.println("나이는?");
  int age = scanner.nextInt();
  System.out.println("신장은?");
  double height = scanner.nextDouble();
  System.out.println("이름 : "+name +" 나이 : " +age +" 키 : "+ height);
 }
}

 Scanner 매소드를 이용하여 입력을 저장 후 출력.

 

3) Swing.JOptionPane 사용

 import javax.swing.JOptionPane;

public class InputTest4{
 public static void main(String[] args) {
  String name = JOptionPane.showInputDialog("당신의 이름은?");
  System.out.println("이름 = " +name);
 }
}

  DOS모드에서 할 필요없이 입력 메세지박스가 뜬다.

 

 

1. if문

 1) 참일때만 사용

 2) 참과 거짓일때 사용

 3) 경우의 수가 3개 이상일때 사용

 

2. switch문

 - 초기값을 지역변수로 사용할 수 있다.

 - 경우의 수가 많더라도 결과를 한번에 찾게된다.

 - 조건은 정수만 올 수 있다. (1.5버전 이상은 enum가능)

 

3. for문 : 반복의 시작과 끝이 명료하다.

  1) 무한반복이 되지 않도록 조심!

예제 : 다음의 결과를 갖도록 for문을 이용해 작성해 보세요.

 A B C D E

 f  g  h  i  j

 K L M N O

 p q  r  s  t

 U V W X Y

 z

 

 public class ForTest2{
 public static void main(String[] args) {
  int cnt=1;
  int cnt2 = 0;
  for(int i=65;i<91;i++){
   if( (cnt2%2)==0){ System.out.printf("%c\t",i);}
   else{
   System.out.printf("%c\t",i+32); }
   if (0==(cnt%5))  {System.out.println(""); cnt2++;  }
   cnt++;
      }
 }
}

★★★★★

★★★★

★★★

★★

 public class ForTest4{
 public static void main(String[] args) {
  for (int i = 5 ; i>=1 ; i-- ){
   for (int j=1; j<=i ; j++ ){
    System.out.print("★");   
   }
   System.out.println("");
  }
 }
}

 
 2) 강화된  for문
  - 배열이나 컬렉션에서 사용된다.(일반 for문처럼 사용할 수 없다.)
  - 속도를 줄이기 위해 index의 사용을 제거하였다.
  - 배열 내의 모든 내용을 출력하기 때문에 특정 번째의 내용 확인을 할 수 없다.

 

 int[] array = {2,3,4,5,6};

 for ( int su: array ){
   System.out.print(su);
  }

 출력 :

 23456

 

4. while문 : 반복의 시작과 끝이 명료하지 않다.

  - 초기값을 무조건 while문 밖에 선언한다.

  - do while은 한번 실행 한 후 조건을확인.

 

4. 분기문 : 자바는 goto문을 쓸 수 없다.

 1)continue/break/label

   - label은 중첩된 반복문에서만 사용할 수 있다.

 

 

ps.----------------------------------------------------------

 

- String은 == 연산자가 주소를 비교하기 때문에 값을 비교하지 않는다.

 public class InputTest1
 public static void main(String[] args) {
  String season = args[0]; //

 

  if(season == "summer"){

  System.out.println("여름입니다.");

}else{

  System.out.println("여름이 아닙니다.");

}

}

실행 시 입력을 넣어야 한다.

 />java InputTest1 summer

 

출력 :

 여름이 아닙니다.

 

 public class InputTest1
 public static void main(String[] args) {
  String season = args[0]; //

 

  if(season.equals("summer")){

  System.out.println("여름입니다.");

}else{

  System.out.println("여름이 아닙니다.");

}

}

 

실행 시 입력을 넣어야 한다.

 />java InputTest1 summer

 

출력 :

 여름입니다.

 if(season.compareTo("summer") == 0){ 

 두 문자열의 값을 빼 0이 나오면 같다. 

 

 

 - 자동 형변환

 double = avg;

 int tot ;

 int a =90; int b=80; int c = 100;

tot = a+b+c

avg = tot/3.0; //나누기 연산으로 정수형으로 변하기 때문에 평균의 소수점을 표현하기위해서 연산 중 한 부분을 실수로 써 주었다.

 

- switch문으로 계산기 만들 때 곱하기 연산자 입력을 *로 받으면 오류가 발생한다.

 

- random() 의 동작 : 1~10 사이의 랜덤수를 뽑기

 범위

 0.0 <= r <= 1.0  

 양변에 범위의 최대값을 곱함

 0.0 <= r*10 <= 10.0 

 양변에 최소값을 더함

 1.0 <= r*10+1 <= 11.0 

 최종적으로

 r 은 1~10 사이의 값이 될 수 있다. 

'Programming > JAVA' 카테고리의 다른 글

자바 메소드(method)  (3) 2011.03.24
자바 배열이란?  (2) 2011.03.24
JAVA 문법과 연산자  (2) 2011.03.24
JAVA 언어의 법칙  (1) 2011.03.24
JAVA의 특징과 설치  (2) 2011.03.24

+ Recent posts