-
if 조건문 / switch문프로그래밍/JAVA 자바 2021. 7. 6.반응형
if 문은 내용이 크게 어렵지 않아 예제만 훑어봐도 언제든 감을 다시 잡을 수 있을거 같다.
입력 받은 정수의 홀수 짝수를 구분해보자
public static void main(String[] args) { // 입력 받은 정수의 홀짝 구분 // if만 사용 Scanner sc = new Scanner(System.in); int n; String s; System.out.print("정수 입력 : "); n = sc.nextInt(); s = "짝수"; if(n%2 == 1) { //if((n&1) == 1) 1이면 홀수 0이면 짝수이다. s = "홀수"; } System.out.println(n + ":" + s); sc.close(); }
여기서 중요한거는
&비트 단위 연산자를 사용한 것이다.
public static void main(String[] args) { // 입력 받은 정수의 짝홀 판별 if-else 사용 Scanner sc = new Scanner(System.in); int n; String s; System.out.println("정수 입력 : "); n = sc.nextInt(); if(n%2==0) { s = "짝수"; } else { s = "홀수"; } System.out.println(n + ":" + s); sc.close(); }
if - else문이 위에 예제 보다 속도가 더 빠르다.
다중 선택 if 문
정수 입력 받아 3또는 2의 배수인지 3의 배수인지 아니면 2의 배수인지 판별
public static void main(String[] args) { // 다중 선택 if 문 // 정수 입력 받아 3또는 2의 배수인지 3의 배수인지 아니면 2의 배수인지 판별 Scanner sc = new Scanner(System.in); int n; String s; System.out.print("정수 입력 : "); n = sc.nextInt(); /* if(n%2 == 0) { s="2의배수"; if(n%3 == 0) { s="2와 3의 배수"; } } else { s = "2또는 3의 배수가 아니다."; if(n%3 == 0) { s="3의 배수"; } } */ if(n%2 == 0 && n%3 == 0) { s="2와 3의 배수"; }else if(n%2 == 0) { s = "2의 배수"; }else if(n%3 == 0) { s = "3의 배수"; }else { s = "2또는 3의 배수가 아님"; } System.out.println(n + ":" + s); sc.close(); }
한 문자 입력 받아서 소문자이면 소문자 출력 대문자이면 대문자 출력 기타문자면 기타 문자라고 출력
public static void main(String[] args) { // 한 문자 입력 받아서 소문자이면 소문자 출력 대문자이면 대문자 출력 기타문자면 기타 문자라고 출력 Scanner sc = new Scanner(System.in); char a; System.out.println("한 문자 입력 : "); a = sc.next().charAt(0); if(a >= 'a' && a <= 'z') { System.out.println("소문자"); }else if(a >= 'A' && a <= 'Z') { System.out.println("대문자"); } else { System.out.println("기타 문자"); } sc.close(); }
여기서 포인트는 'a' 나 'A' 같은 애들은 결국 아스키 코드로 변환하면 숫자이기 때문에
<,>,== 과 같은 부등호를 이용해서 사용이 가능하다는 점.
두정수를 입력 받아 입력 받은 수중 큰 수에서 적은수를 뺀 차이를 출력하는 프로그램 작성
public static void main(String[] args) { // 두정수를 입력 받아 입력 받은 수중 큰 수에서 적은수를 뺀 차이를 출력하는 프로그램 작성 Scanner sc = new Scanner(System.in); int a,b,c; System.out.println("1번째 정수 입력 : "); a = sc.nextInt(); System.out.println("2번째 정수 입력 : "); b = sc.nextInt(); if(a>b) { c = a; a=b; }else { c = b; } System.out.printf("가장 큰 수 : %d \n가장 작은 수 : %d\n",c,a); System.out.println("두 수의 차이 : " + (c-a)); sc.close(); }
if로 윤년 계산
public static void main(String[] args) { // if로 윤년 계산 Scanner sc = new Scanner(System.in); int y; System.out.println("년도 입력 : "); y = sc.nextInt(); if(y%4 == 0 && y%100 != 0 || y%400 == 0) { System.out.println("윤년"); } else { System.out.println("평년"); } sc.close(); }
점수를 입력 받아 입력받은 점수에 따른 평점을 구하라
public static void main(String[] args) { // 점수를 입력 받아 입력받은 점수에 따른 평점을 구하라 Scanner sc = new Scanner(System.in); int a; double x; System.out.println("점수 입력 : "); a = sc.nextInt(); /* if(a<0 && a>100) { System.out.println("입력 오류"); } if(a>=95 && a<=100) { x = 4.5; System.out.println(x); } else if(a>=90 && a<95) { x = 4; System.out.println(x); } else if(a>=85 && a<90) { x = 3.5; System.out.println(x); } else if(a>=80 && a<85) { x = 3; System.out.println(x); } else if(a>=75 && a<80) { x = 2.5; System.out.println(x); } else if(a>=70 && a<75) { x = 2; System.out.println(x); } else if(a>=65 && a<70) { x = 1.5; System.out.println(x); } else if(a>=60 && a<65) { x = 1; System.out.println(x); } else if(a>=0 && a<60) { x = 0; System.out.println(x); } */ if(a>=0 && a<=100) { if(a>=95) x=4.5; else if(a>=90) x = 4.0; else x = 0; System.out.println(x); } else { System.out.println("입력 오류"); } sc.close(); }
급여 계산 프로그램
시간당 급여 만원 8시간 초과하면 초과시간은 1.5배 지급public static void main(String[] args) { // 급여 계산 프로그램 // 시간당 급여 만원 8시간 초과하면 초과시간은 1.5배 지급 Scanner sc = new Scanner(System.in); int h; int x; System.out.print("일 한 시간 입력: "); h = sc.nextInt(); if(h<=8) { x = h * 10000; System.out.printf("급여 : %,d원", x); } else { x = 80000 + ((h-8)*15000); System.out.printf("급여 : %,d원\n", x); } sc.close(); }
포인트는 %,d 를 이용해서 3자리수 마다 숫자 사이사이에 콤마를 넣어줄 수 있다.
정수 2개 입력하고 연산자도 내가 입력해줘서 계산하기
public static void main(String[] args) { // 정수 2개 입력하고 연산자도 내가 입력해줘서 계산하기 Scanner sc = new Scanner(System.in); int a,b,c = 0; char x; System.out.print("두 수 입력 : "); a = sc.nextInt(); b = sc.nextInt(); System.out.print("연산자 입력 : "); x = sc.next().charAt(0); if(x == '+') c = a+b; else if(x == '-') c=a-b; else if(x == '*') c=a*b; else if(x == '/') c=a/b; else { System.out.println("연산자 제대로 입력"); } System.out.printf("%d %s %d = %d\n" ,a,x,b,c); sc.close(); }
이름과 세과목 점수 입력 받아서 합격 여부 판단
public static void main(String[] args) { // 이름과 세과목 점수 입력 받아서 합격 여부 판단 Scanner sc = new Scanner(System.in); String name; String result; int a,b,c,tot,ave = 0; System.out.println("이름 입력 : "); name = sc.next(); System.out.println("세 과목 점수 입력 : "); a = sc.nextInt(); b = sc.nextInt(); c = sc.nextInt(); tot = a+b+c; ave = tot/3; if(a>=40 && b>=40 && c>=40 && ave>=60) { result = "합격"; } else if(ave < 60) { result = "불합격"; } else { result = "과락"; } System.out.printf("%s님은 $s 입니다. \n", name, result); sc.close(); }
이건 숙제로 내준 if문을 활용한 코드
public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String name, number; int m = 0; //중간 int f = 0; //기말 int c = 0; //결석 횟수 int s = 0; //레포트 점수 int grade; //학점 등급 int x; //합산 점수 char grade2=0; System.out.print("학번 입력 : "); number = sc.next(); System.out.print("이름 입력 : "); name = sc.next(); System.out.print("중간고사 점수 입력 : "); m = sc.nextInt(); System.out.print("기말고사 점수 입력 : "); f = sc.nextInt(); System.out.print("결석횟수 입력 : "); c = sc.nextInt(); System.out.print("레포트 점수 입력 : "); s = sc.nextInt(); m = (int)(m*0.4); f = (int)(f*0.4); s = (int)(s*0.1); if(c>=6) c=0; else if(c==4 || c==5) c=(int)(60*0.1); else if(c==2 || c==3) c=(int)(80*0.1); else if(c==0 || c==1) c=(int)(100*0.1); grade = m+f+s+c; if(grade>=90) grade2='A'; else if(grade>=80) grade2='B'; else if(grade>=70) grade2='C'; else if(grade>=60) grade2='D'; else if(grade<60) grade2='F'; x = m+f+s+c; System.out.printf("학번\t이름\t중간고사\t기말고사\t출석점수\t레포트\t합산점수\t학점\n"); System.out.printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%c\n",number,name,m,f,c,s,x,grade2); sc.close(); }
switch 스위치 문
public static void main(String[] args) { // 스위치 문 Scanner sc = new Scanner(System.in); int n; System.out.println("정수 입력 : "); n = sc.nextInt(); switch(n) { //break 안 붙이면 n을 찾고나서 부터 밑으로 주르륵 다 실행함 case 3 : System.out.println("*"); break; case 2 : System.out.println("#"); break; case 1 : System.out.println("$"); break; default : System.out.println("입력오류"); break; //위치는 상관 없음 조건을 하나도 만족 하지 않았을때 나타남 } sc.close(); }
점수를 입력 받아 입력 받은 점수로 학점 계산하여 출력
public static void main(String[] args) { // 점수를 입력 받아 입력 받은 점수로 학점 계산하여 출력 Scanner sc = new Scanner(System.in); int n; char p; System.out.print("점수 입력 : "); n = sc.nextInt(); switch(n%10) { // 87/10 * 8 case 10: case 9: p ='A'; break; case 8: p ='B'; break; case 7: p ='C'; break; case 6: p ='D'; break; default: p = 'F'; break; } System.out.println(n + "->" + p); sc.close(); }
90~100점 이상은 A 이런식의 내용인데
이걸 %로 나머지를 구해서 (int)로 받아와 소숫점 부분을 버린다.
그러면 90~100 사이 어떤 수라도 앞 자리는 9이기 때문에 구할 수 있다.
반응형'프로그래밍 > JAVA 자바' 카테고리의 다른 글
do-while문 / for문 / 별찍기 / 가위바위보 (0) 2021.07.09 자바 - while 문 (0) 2021.07.07 문자열 마무리 / 삼항 연산자 / 비트 단위 부정 연산자 (0) 2021.07.05 Java 입력문 Scanner / 진수 내용 / 주석 / 나머지 연산자 및 초를 입력 받아 시 분 초로 나타내기 (0) 2021.07.02 이클립스 프로젝트 생성 및 초기 세팅 (0) 2021.07.02