Posts 자바-2. 제어문
Post
Cancel

자바-2. 제어문

값을 치환하기 (swap)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
 * int a = 10, b = 20 일 경우
 * 실행결과 a:10, b:20
 *       a:20, b:10
 * 힌트) tmp = x x=y y=tmp  
*/
public static void main(String[] args) {

  int a = 10, b = 20;
  int tmp = 0;

    System.out.printf("a= %d, b=%d \n", a,b);

    tmp = a;
    a = b;
    b = tmp;

    System.out.printf("a= %d, b=%d \n", a,b);
 }

if 문

예제1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
 * 문제) 정수를 입력받아 첫줄에 입력받은 숫자를 출력하고
 * 음수이면 "minus"라고 출력하는 프로그램 작성
 * 입력예)	-5	5
 * 출력예)	minus
*/
public static void main(String[] args) {
  Scanner scn = new Scanner(System.in);
  int num = scn.nextInt();

  System.out.println(num);

  if(num < 0)
  {
    System.out.println("minus");
  }
}

예제2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args) {

  Scanner scn = new Scanner(System.in);
  int a = scn.nextInt();
  int b = scn.nextInt();

  if(a < b)
  {
    int tmp;
    tmp = a;
    a = b;
    b = tmp;
  }
  System.out.printf("입력받은 수 중 큰수는 %d이고 작은수는 %d입니다.\n", a,b);
}

if else 문

예제1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 * 문제) 정수를 입력받아 80점 이상이면 합격 아니면 불합격을
 * 출력하는 프로그램
 * 입력예) 점수를 입력하세요. : 89
 * 출력예) 축하합니다. 합격입니다.
 * 
 * 입력예) 점수를 입력하세요. : 70
 * 출력예) 죄송합니다. 불합격입니다.
*/
public static void main(String[] args) {

  Scanner scn = new Scanner(System.in);
  System.out.print("점수를 입력하세요. : ");
  int s = scn.nextInt();

  if(s >= 80)
    {
      System.out.println("축하합니다. 합격입니다.");
      }
      else
    {
      System.out.println("죄송합니다. 불합격입니다.");
    }
}

예제2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
 * 문제)나이를 입력받아 20살 이상이면 "adult"라고 출력하고
 * 그렇지 않으면 몇년후에 성인이 되는지를 "_ years later"라는
 * 메세지를 출력하는 프로그램 작성
 * 입력예)나이를 입력하세요. : 19
 * 출력예)1 years later
 * 
 * 입력예)나이를 입력하세요. : 22
 * 출력예)adult
 */
public static void main(String[] args) {

  Scanner scn = new Scanner(System.in);
  System.out.print("나이를 입력하세요. :");
  int age = scn.nextInt();

  if(age >= 20)
  {
    System.out.println("adult");
        }
  else
  {
    System.out.printf("%d years later\n", 20 - age);
  }
}

if ~else if 문

예제1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * 문제)점수를 입력받아 "수우미양가"로 평가하는 프로그램
 * 입력예)점수를 입력하세요. : 89
 * 출력예)우
 */ 
public static void main(String[] args) {
  
  Scanner scn = new Scanner(System.in);
  System.out.print("점수를 입력하세요. :");
  int score = scn.nextInt();

  if(score >= 90)
  {
    System.out.println("수");
  }
  else if(score >=80)
  {
    System.out.println("우");
  }
  else if(score >=70)
  {
    System.out.println("미");
  }
  else if(score >=60)
  {
    System.out.println("양");
  }
  else
  {
    System.out.println("가");
  }
}

예제3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * 문제) 주사위를 두번 던져서 나온수를 입력받아 두수가 모두
 * 4이상이면 "이겼습니다." 한개만 4이상이면 "비겼습니다."
 * 모두 4미만이면 "졌습니다."라고 출력하는 프로그램
 * 입력예)주사위를 던진 결과를 입력하세요. : 3 4
 * 출력예)비겼습니다.
 * if~else if~ 이용
 */
public static void main(String[] args) {

  Scanner scn = new Scanner(System.in);
  System.out.print("주사위를 던진 결과를 입력하세요. :");
  int a = scn.nextInt();
  int b = scn.nextInt();

  if(a >= 4 && b > 4)
  {
    System.out.println("이겼습니다.");
  }
  else if(a >= 4 || b >= 4)
  {
    System.out.println("비겼습니다.");
  }
  else
  {
    System.out.println("졌습니다.");
  }
}

예제4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String[] args) {

  Scanner scn = new Scanner(System.in);
  System.out.println("주사위를 던져 결과 ");
  int a = scn.nextInt();
  int b = scn.nextInt();
  int c = 1;

  if(a>=4 && b>=4)   //&&연산자에선 맨앞이 거짓일 확률이놓은것, 
  {
    //System.out.println("안탄다");

  } 
  else if(a>=4 || ++c>0)  // ||연산자에선 맨앞이 참일확율이높은것, 앞조건이 먼저참이면 뒷조건은 확인을안한다.
  {
    System.out.println("비겼습니다. ");

  }
  System.out.println("c : " + c);
}

예제5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* 문제) 점수를 입력받아 90점 이상이면 'A', 80점 이상이면 'B',
 * 70점 이상이면 'C' 나머지는 'D를 출력하는 프록램
 * 입력예 ) 점수를 입력하세요 :  70
 * 출력예 ) 당신의 학점은 C입니다. 
 * 입력예 ) 점수를 입력하세요 :  63
 * 출력예 ) 당신의 학점은 D입니다. 
 *  */
public static void main(String[] args) {
  char grade = ' ';
  int jumsu = scn.nextInt();
  System.out.println("점수를 입력하세요 : ");
  if(jumsu>=90) 
  {
    grade = 'a';
  }
  else if(jumsu>=80 && jumsu<90)
  {
    grade = 'b';
  }
  else if(jumsu>=70 && jumsu<80)
  {
    grade = 'c';
  }else
  {
    grade = 'd';
  }
  System.out.printf("당신의 학점은 %c입니다.", grade);
}

중첩 if문

예제 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* 중첩 if 구문사용
* 문제) 점수를 입력 받아 100점 이에서 98점이상은 'A+',
* 90~94점은 'A-', 그리고 95~97점은 'A '로 처리
* 80점 이하는 'C'학점
* 입력예) 점수를 입력해주세요. : 100 (score)
* 출력예) 당신의 점순는 100점입니다.
*	당신의 학점은 A+ 입니다. (grade : A, B, C, opt:+,-,"") 
*
*입력예) 점수를 입력해주세요. : 81
*출력예) 당신의 점수는 81점입니다.
*		당신의 학점은 B-입니다.

*입력예) 점수를 입력해주세요. : 85
*출력예) 당신의 점수는 85점입니다.
*		당신의 학점은 B 입니다.
* */
public static void main(String[] args) {
  char grade = ' ', opt =' ';
  System.out.println("점수를 입력해주세요. : ");
  int score = scn.nextInt();
  System.out.printf("당신의 점수는 %d점 입니다. \n : ", score);

  if(score >= 90)
  {
    grade = 'A';
    if(score >= 98)
    {
      opt = '+';
    }
    else if(score <= 94)
    {
      opt = '-';
    }
  }
  else if(score >= 80)
  {
    grade = 'B';
    if(score >= 88) {
      opt = '+';
    }
    else if(score <= 84) {
      opt = '-';
    }
  }
  else
  {
    grade = 'C';
  }
  System.out.printf("당신의 학점은 %c%c입니다. \n", grade, opt);
}

큰수 - 작은수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* 문제1) 두개의 정수를 입력받아 큰수에서 작은수를 뺀 차를 출력하는 프로그램
 * 예외사항) 변수는 a, b를 이용하고 a가 반드시 큰수로 처리
 * 입력예) 50 85
 * 출력예) 35 
 * */
public static void main(String[] args) {
  int num = scn.nextInt();
  int num2 = scn.nextInt();
  int gab = 0;
  int temp;

  if(num > num2) {
    gab = num - num2;
  }else {
    temp=num2;
    num2=num;
    num=temp;
    gab = num - num2;
  }
  System.out.print(gab);
}

윤년 평년 판단하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* 문제) 연도를 입력받아 윤년인지 평년인지 판단하는 프로그램
* (윤년은 "윤년입니다.", 평년은 "평년입니다."
* 입력예) 2008
* 출력예) 2008년은 윤년입니다. 
* 힌트 - 1. 400으로 나누어 떨어지면 윤년,
*       2. 4로 나누어 떨어지고 100으로 나누어 떨어지지 않으면 윤년.
*       3. 나머지는 평년.
*  */
public static void main(String[] args) {
    
  int year = scn.nextInt();
  String memo = "";
  if( (year % 400 == 0) ||
      (year % 4 == 0 && year % 100  != 0) ) {
    memo = "윤년";
  }else {
    memo = "평년";
  }
  System.out.printf("%s"+"입니다.", memo);
}		
This post is licensed under CC BY 4.0 by the author.