국비 수업 4일차, 오늘은 if와 switch에 관하여 배웠다. 다른 이들에게도 도움이 되었으면 좋겠다.
1. 홀수, 짝수 판별 코드
public class IfElseTest
{
public static void main(String[] args)
{
int num =0;
if(num%2 == 1) { //나머지를 분석하여 홀수 짝수를 분석한다.
System.out.println(num+"은 홀수!");
}
else //조건문이 false일 떄 실행하는 문장
{
System.out.println(num+"은 짝수!");
}
System.out.println("프로그램 종료!");
}
}
If문 소괄호안에 True 값이 올 떄, 중괄호 내용이 실행이 된다.
else 구문은 If 문 소괄호의 판별식이 false가 될 떄, 실행이 되는 내용이다.
실행결과
2. 위의 코드를 변형하여, 이번에는 키보드에서 입력을 받아 짝수 홀수를 판별하는 프로그램을 아래와 같이 작성하였다.
public static void main(String[] args) {
/////////////////////////////////////////////////////
//변수를 선언하면 지역변수 local variable
int num;
Scanner sc = new Scanner(System.in); //생성자를 호출한다. heap 영역에 있다.
// 자바는 메모리 주소 접근을 안한다. 메모리 컨트롤은 JVM이 해준다.
System.out.print("숫자입력 : ");
num = sc.nextInt();
if(num%2==0) System.out.println("짝수");
else System.out.println("홀수");
System.out.println("프로그램 종료");
sc.close();
}
실행결과
유저와 컴퓨터의 가위 바위 보 승부
- 유저측은 키보드로 숫자 입력을 받고, 컴퓨터측은 랜덤함수로 숫자를 할당받아 서로 비교하여, if else 구문을 통해 가위바위보 판정을 출력해주는 게임
public static void main(String[] args) {
/////////////////////////////////////////////////////
//유저와 컴퓨터간의 가위 바위 보 게임
//가위:0 , 바위:1, 보:2
int user;
Scanner sc = new Scanner(System.in);
System.out.println("가위:0, 바위:1, 보:2");
System.out.print("유저의 선택 : ");
user = sc.nextInt();
int com = (int)(Math.random()*3); //0.0 ~ 1.0 의 범위에 3을 곱해주어 0.0~2.9999가 되었다.
System.out.println("컴퓨터의 선택 " + com+" ");
if(user==com) {
System.out.println("서로비겼습니다."); //user와 com의 값이 대등할 때 비긴다.
}
else if( // 유저가 이기는 상황 세가지를 논리식으로 판별하였다.
(user==0 && com==2) || // 유저:가위, 컴퓨터: 보
(user==1 && com==0) || // 유저:바위, 컴퓨터: 가위
(user==2 && com==1) )// 유저: 보 , 컴퓨터: 바위
System.out.println("당신이 이겼습니다.");
else System.out.println("당신이 졌습니다."); // 승리와 무승부를 제외한 상황, 패배를 의미
}
실행결과
4. 스위치문
- 스위치문 소괄호에 들어갈 식으로, 정수형, char형, String형은 가능하지만, 실수형은 불가능하다.
int sw =0;
switch(sw) {
case 0:
System.out.println("off");
break;
case 1:
System.out.println("on");
break;
}
char day = '월';
switch(day)
{
case '월': System.out.println(day);
case '화':
case '수':
case '목':
case '금':
case '토':
default:
}
String season = "봄";
switch(season)
{
case "봄": System.out.println(season);
case "여름":
case "가을":
case "겨울":
}
// double rate = 1.5;
// switch(rate)
// {
// case 1.5:
// case 2.5:
// case 3.5;
// case 4.5;
// } 실수형은 불가능하다.
}
}
5. 스위치문02
-
90점 이상 A,
80점 이상 B,
70점 이상 C를 출력하는 코드이다. 스위치문 내부에 어떻게 num을 가공했는지 눈여겨보자. 이를 통해서 1의자리 숫자를 버리고 각 Case에 해당하는 값을 만들었다.
int num =95;
System.out.println(num);
switch(num/10*10) {
case 100:
case 90:
System.out.println("A");
break;
case 80:
System.out.println("B");
break;
case 70:
System.out.println("C");
break;
case 60:
System.out.println("D");
break;
default:
System.out.println("F");
//If로 구현한 것 보다 스위치가 더 성능이 좋다. 계산을 한번만 하고 case를 바로 찾아가면 되기 때문이다.
// 가독성도 스위치가 조금 더 낫기도 하다. 중첩 If else는 괄호가 너무 많이 사용되어 헷갈린다.
}
}
}
실행결과
'Java' 카테고리의 다른 글
jdbc가 뭐지? (0) | 2022.09.25 |
---|---|
2차원 배열 예제 (0) | 2022.08.29 |
배열, for 문 예제 (0) | 2022.08.29 |
자바 환경설정 (0) | 2022.08.29 |