값을 치환하기 (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);
}