public static void main(String[] args) {
기본적으로 if문 사용법은
if (조건) {
조건에 만족했을경우 실행문장;
}
이 아래로는
조건이고 뭐고 걍실행
이 되겠고
if~ else문은
if(조건){
조건에 만족했을경우 실행
}else {
조건에 만족하지 않았을경우 실행
}
if~ else if~ else~는
if(조건1){
조건에 만족했을경우 실행
} else if(조건2){
조건2에 만족했을경우 실행
} else if(조건3){
조건3 어쩌구
}else{
만족못하는사람이되어버림
}
이렇게 된다
// 제어문 : 조건분기문, 반복문, 기타 제어문 으로 구성되며, 프로그램 실행의 흐름을 제어하는 문장
// 구조적 프로그래밍 언어는 구조적으로 되어있다(순차적)
// 조건분기문 : 입력되어지는 데이터의 조건 만족 여부에 따라 실행 내용을 달리 하도록 하는 문장
// 조건에 따라 나뉘어지는(분기) 문장
// if~문 , switch~문
//삼항 연산자 (제어문보다는 삼항연산자가 더 빠름)
//연사자일뿐 조건분기문은 아님 --간단한것만 가능
int point = 80;
String res = "";
res = (point >= 90) ? "우수" : "보통";
//조건분기문 ( 한줄if문 )
String res2 ="보통";
if (point>=90) res2 = "우수";
//단순할땐 이렇게 한줄로 쓸 수 있지만
//실행할 문장이 두줄 이상의 if문
String res3 = "보통";
int bonus=0;
if(point>=90){
res3="우수";
bonus = 10;
}
//여러줄이 될 경우 {}블록을 씌어줘서 여러개를 실행가능
//조건식이 만족하지 않을 때와 만족할때를 나타내는 if문
String res4 ="";
if(point>=90 ){
res4="우수";
} else{
res4="보통";
}
import java.util.Scanner;
//Scanner 변수명 = new Scanner(System.in); 을 친후 Ctrl+shift+O 치면 쉽게 임포트가 된다
public class Example {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("번호입력[1-10] : ");
int num = sc.nextInt();
System.out.println("국어 점수 입력[1~100] : ");
int kor = sc.nextInt();
System.out.println("수학 점수 입력[1~100] : ");
int mat = sc.nextInt();
System.out.println("영어 점수 입력[1~100] : ");
int eng = sc.nextInt();
int tot = kor+mat+eng;
float avg= tot/3.0f;
String pon = "";
//if~ 단순if
//if~else~ 일반if
//국어 , 수학, 영어 각 과목의 점수가 60점 이상이고, 평균이 80점 이상이면 합격
if(kor>=60 && eng>=60 && mat>=60 && avg>=80) //&&AND문은 셋다 만족해야하므로
//국영수 모두 60이상이고 평균이 80이상일때가 만족하는 조건이다
{
pon = "합격";
System.out.println(pon);
}
else {
pon ="불합격";
System.out.println(pon);
}
String remark = "";
//참고(remark)는 국어, 영어, 수학 점수 중에서 하나라도 90 이상이면, "과목우수", 아니면 ""처리
if(kor>=90 || mat>=90 || eng>=90) //OR문은 셋중 하나만 만족해도됨
{
remark = "과목우수";
System.out.println(remark);
}else
{
System.out.println(remark);
}
//if~else if~else
//만약, 평균이 90이상이면, "A", 80이상이면 "B", 70이상이면 "C", 60이상이면 "D"
//60점 미만이면 "F" //if (){} else if(){} else{}-- 다단계if라고함
String hak="";
if(avg>=90){
hak="A";
System.out.println(hak);
}else if(avg>=80){
//90이상에서 만족하지 못했으면 그다음 else if문에는 90미만의 의미가 내포되어있다고 생각하면된다
hak="B";
System.out.println(hak);
}else if(avg>=70){
hak="C";
System.out.println(hak);
}else if(avg>=60){
hak="D";
System.out.println(hak);
}else{
hak="F";
System.out.println(hak);
}
/*
if(조건식1){
조건식1을 만족했을때 출력
}else if(조건식2){
조건식 1을 만족하지않고 조건식2를 만족했을때
}else if(조건식3){
조건식2를 만족하지않고 조건식3를 만족했을때
}else{
어떤 조건식도 만족하지 못했을경우
}
*/
//번호 , 국어 , 영어 ,수학, 총점, 평균 ,판정, 참고사항, 학점을 모두 출력하시오.
System.out.println("번호\t국어\t영어\t수학\t총점\t평균\t판정\t참고사항\t학점");
System.out.printf("%d\t%d\t%d\t%d\t%d\t%.1f\t%s\t%s\t%s",num,kor,eng,mat,tot,avg,pon,remark,hak);
sc.close();
}
}
예제를 하나 더올려보자면
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("컴퓨터 일반 점수 :");
int edps = sc.nextInt();
System.out.println("스프레드시트 일반 점수 :");
int sp = sc.nextInt();
System.out.println("데이터베이스 일반 점수 :");
int db = sc.nextInt();
//컴퓨터 일반, 스프레드시트일반 ,데이터베이스일반 점수를 변수로 입력받아
//평균이 96~100 A+, 93~95 A0 , 90~92 A-
// 86~89 B+, 83~85 B0, 80~82 B-
// 76~79 C+, 73~75 C0, 70~72 C-
//평균이 66~69 D+, 63~65 D0, 60~62 D-
//평균이 60 미만이면 F
//if~else if~else 문으로 학점(hak)을 계산
int tot=edps+sp+db;
float avg=tot/3.0f;
String hak="";
if(avg>=90){
hak="A";
}else if(avg>=80){
hak="B";
}else if(avg>=70){
hak="C";
}else if(avg>=60){
hak="D";
}else{
hak="F";
}
//if((int) avg%10>=6)
//if~else if~else 문으로 평균의 나머지를 정수로 바꾸어 +,0,- 를 hak추가
if(avg<60){
}else if(avg==100){
hak = hak + "+";
}else if((int)avg%10>=6){
hak = hak +"+";
}else if((int)avg%10>=3){
hak = hak +"0";
}else{
hak = hak +"-";
}
//if((int) avg == 100) hak = "A+"
//if((int) avg < 60) hak = "F";
System.out.println("학점은 : "+hak);
sc.close();
}
}