으나님의 잡다한 개발상식
(JAVA) 조건문 본문
1. 조건문
java에서 조건문은 if문과 switch문 두 가지뿐이다.
2. if문을 이용하여 문제 풀기
EX) 점수별 성적표 만들기
import java.util.Scanner;
public class ex08 {
public static void main(String[] args) {
/*성적을 입력받아서
*90점 이상이면 A
*80점 이상이면 B
*70점 이상이면 C
*60점 이상이면 D
*60점 미만이면 F
*/
Scanner scan =new Scanner(System.in);
int score = scan.nextInt();
if(score>100 || score <0) {
System.out.println("잘못된 입력입니다.");
}else{
if (score>=90) {
System.out.println("A");
}else if(score>=80) {
System.out.println("B");
}else if(score>=70) {
System.out.println("C");
}else if(score>=60) {
System.out.println("D");
}else {
System.out.println("F");
}
}
}
}
※ java에서는 if문은 중괄호를 쓰지 않아도 첫 번째 줄을 true가 나올 경우 반환하는 값으로 생각하여 수행이 가능하다.
EX)
int A = 1;
if(A==1);
System.out.print(A); //OK
EX)
int A = 1;
if(A==1)
System.out.print(A);
System.out.print(A+1); //OK
//위의 식은 아래의 식과 같다.
int A = 1;
if(A==1) {
System.out.print(A);
} else {
System.out.print(A+1);
}
EX)
if(A==1)
System.out.print(A);
else //Error : else 아래의 구문이 필요하다.
EX)
if(A==1)
System.out.print(A);
else
System.out.print(A+1); //OK
※ if 조건식에서 자주 헷갈릴 수 있는 부분
EX)
int i = 0;
if(i=0){} //Error
if(i==0){} //OK
EX)
String str = "a"
char ch = "b"
if(str=="c"){} //Error : String과 char 값 직접 비교 불가능. 객체를 비교하려면 아래와 같이
if(str.equals("C")){} //OK
ch=str.charAt(0); //OK .charAt();는 character의 값을 String으로 변환한다.
3. switch문을 이용하여 문제 풀기
(1) if문과 달리 조건식의 계산결과가 int범위 이하의 정수만 가능하다.
(2) case문으로 이동 후 break문을 만날 때까지 문장들을 수행한다.
즉, break가 없으면 or로 계산되어 진행된다.
EX) 스위치문으로 성적표 만들기
import java.util.Scanner;
public class ex11 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double score = scan.nextDouble();
if(score>100 || score<0) {
System.out.println("다시 입력해주세요");
}else {
switch((int)score/10) {
case 10:
case 9 :
System.out.println("A");
break; //10 or 9인 경우 "A"를 도출
case 8 :
System.out.println("B");
break;
case 7 :
System.out.println("C");
break;
case 6 :
System.out.println("D");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("F");
break;
default :
System.out.println("다시 입력해주세요.");
break;
}
}
}
}
EX) 첫 번째 숫자와 두 번째 숫자 입력받아서 연산하기
import java.util.Scanner;
public class ex12 {
/*첫 번째 숫자 입력받고 두 번째 숫자 입력 받아서
* +,-,*,/ 을 입력받아서 답을 도출
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("첫 번째 숫자를 입력하세요.");
double fir = scan.nextDouble();
System.out.println("두 번째 숫자를 입력하세요.");
double sec = scan.nextDouble();
System.out.println("연산자를 입력하세요.");
String op = scan.next();
switch(op){
case "+" :
System.out.println(fir+sec);
break;
case "-" :
System.out.println(fir-sec);
break;
case "*":
System.out.println(fir*sec);
break;
case "/" :
if(sec==0) {
System.out.println("0으로 나눌 수 없습니다.");
}else {
System.out.println(fir/sec);
}
break;
}
}
}
EX) 자판기 프로그램 만들기
import java.util.Scanner;
public class ex13 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("돈을 넣으세요.");
int money = scan.nextInt();
System.out.println("메뉴를 고르세요.");
int gum1=100;
int gum2=200;
int gum3=300;
int gum4=400;
int gum5=500;
int gum6=600;
int gum7=700;
int gum8=800;
int gum9=900;
int gum10=1000;
// 넣은 돈보다 비싼 메뉴는 뜨지 않게 하기
if(gum1<=money)
System.out.println("1. 껌1 : 100원");
if(gum2<=money)
System.out.println("2. 껌2 : 200원");
if(gum3<=money)
System.out.println("3. 껌3 : 300원");
if(gum4<=money)
System.out.println("4. 껌4 : 400원");
if(gum5<=money)
System.out.println("5. 껌5 : 500원");
if(gum6<=money)
System.out.println("6. 껌6 : 600원");
if(gum7<=money)
System.out.println("7. 껌7 : 700원");
if(gum8<=money)
System.out.println("8. 껌8 : 800원");
if(gum9<=money)
System.out.println("9. 껌9 : 900원");
if(gum10<=money)
System.out.println("10. 껌10 : 1000원");
int menu = scan.nextInt();
//메뉴와 거스름돈 안내문구 넣기
switch(menu) {
case 1:
System.out.println("껌1을 고르셨습니다. 거스름돈은 "+(money-gum1)+"원입니다.");
break;
case 2:
System.out.println("껌2을 고르셨습니다. 거스름돈은 "+(money-gum2)+"원입니다.");
break;
case 3:
System.out.println("껌3을 고르셨습니다. 거스름돈은 "+(money-gum3)+"원입니다.");
break;
case 4:
System.out.println("껌4를 고르셨습니다. 거스름돈은 "+(money-gum4)+"원입니다.");
break;
case 5:
System.out.println("껌5를 고르셨습니다. 거스름돈은 "+(money-gum5)+"원입니다.");
break;
case 6:
System.out.println("껌6을 고르셨습니다. 거스름돈은 "+(money-gum6)+"원입니다.");
break;
case 7:
System.out.println("껌7을 고르셨습니다. 거스름돈은 "+(money-gum7)+"원입니다.");
break;
case 8:
System.out.println("껌8을 고르셨습니다. 거스름돈은 "+(money-gum8)+"원입니다.");
break;
case 9:
System.out.println("껌9을 고르셨습니다. 거스름돈은 "+(money-gum9)+"원입니다.");
break;
case 10:
System.out.println("껌10을 고르셨습니다. 거스름돈은 "+(money-gum10)+"원입니다.");
break;
}
}
}
'JAVA' 카테고리의 다른 글
(JAVA) method (0) | 2019.11.23 |
---|---|
(JAVA) 반복문에서 label 사용하기 (0) | 2019.11.22 |
(JAVA) String split으로 쪼개서 2차원 배열로 만들기 (0) | 2019.11.22 |
(JAVA) 연산자 (0) | 2019.11.06 |
(JAVA) 기초 (0) | 2019.11.05 |