on
제어문-if문
제어문-if문
프로그램의 흐름(Flow)을 바꾸는 역할을 하는 문장들은 '제어문(Control Statement)라고 한다.
제어문에는 '조건문과 반복문'이 있는데 조건문은 조건에 따라 다른 문장이 수행되도록 하고,
반복문은 특정 문장들을 반복해서 수행한다.
if (조건식) { //조건식이 참(true)일 때 수행될 문장들을 적는다. }
예시
public static void main(String[] args) { int score=80; if(score>60) { System.out.println("합격입니다."); } //true(참)이므로 괄혼{}안에 있는 "합격입니다"문장이 실행된다. } }
조건식의 다양한 예시(1)
90<=x && x<=100 정수 x가 90이상 100이하일 때 x<0 || x>100 정수 x가 0보다 작거나 100보다 클 때 x % 3==0 && x % 2! =0 정수x 가 3의 배수이지만 , 2의 배수는 아닐 때 ch=='y' || ch=='Y' 문자 ch가 'y' 또는 'Y'일때 ch== ' ' || ch=='\t' || ch=='
' 문자ch가 공백이거나 탭 또는 개행 문자일 때
조건식의 다양한 예시(2)
'A' <=ch && ch <='Z' 문자 ch가 대문자일 때 'a' <=ch && ch<='z' 문자 ch가 소문자일 때 '0' <= ch && ch<='9' 문자 ch가 숫자일 때
조건식의 다양한 예시(3)
str.equals("yes") 문자열 str의 내용이 "yes"일 때 (대소문자 구분) str.equalsIgnoreCase("yes") 문자열 str의 내용이 "yes"일 때 (대소문자 구분안함)
if - else 문 / if - else if 문
if - else 문
public static void main(String[] args) { if(조건식) { //조건식이 참(true)일 때 수행될 문장들을 적는다. }else { //조건식이 거짓(false)일 때 수행될 문장들을 적는다. } }
if - else if문 (여러 개의 else if를 사용할 수 있다.)
public static void main(String[] args) { if(조건식1) { //조건식1의 참(true)일 때 수행될 문장들을 적는다. }else if(조건식2){ //조건식2의 연산결과가 참(true)일 때 수행될 문장들을 적는다. }else { //마지막은 보통 else 블럭으로 끝나며 ,else 블럭은 생략 가능하다. //위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다. } } }
if - else if문 예제
public static void main(String[] args) { int score =0; //점수를 저장하기 위한 변수 char grade=' '; //학점을 저장하기 위한 변수. 공백으로 초기화 시켜준다. System.out.print("점수를 입력하세요="); Scanner sc = new Scanner(System.in); score =sc.nextInt(); //화면을 통해 입력받은 숫자를 score에 저장한다. if(score>=90) { grade='A'; //score가 90점 보다 같거나 크면 A학점 } else if(score>=80) { grade='B'; //score가 80점 보다 같거나 크면 B학점 } else if(score>=70) { grade='C'; //score가 70점 보다 같거나 크면 C학점 } else { grade='D'; //나머지는 D학점 } System.out.println("당신의 학점은="+grade+"입니다."); }
좀더 길게 만들어 보자
if(score>=90) { grade='A'; } else if(80 <= score && score < 90) { grade='B'; } else if(70 <= score && score < 90) { grade='C'; } else { // score <70 grade='D'; }
위와 같다. 하지만 복잡하기에 알아만 두자.
중첩 if 문
if문의 블럭 내에 또 다른 if문을 포함시키는 것이 가능한데 이것을 중첩if문이라고 한다.
public static void main(String[] args) { if(조건식1) { //조건식의 연산결과가 ture일 때 수행될 문장들을 적는다. if(조건식2) { //조건식 1과 조건식2가 모두 true일 때 수행될 문장들. }else { //조건식 1이 true이고, 조건식2가 false일 때 수행되는 문장들 } } else { //조건식 1이 false일 때 수행되는 문장들 } }
예제
import java.util.Scanner; public class Casting { public static void main(String[] args) { int score =0; char grade=' ', opt=' '; System.out.print("점수를 입력하세요="); Scanner sc= new Scanner(System.in); score=sc.nextInt(); 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.println("당신의 학점은= "+grade+opt+"입니다."); //System.out.printf("당신의 학점은= %c%c입니다.
",grade,opt); //둘중에 하나 사용 가능 } }
결과
더보기 점수를 입력해주세요 = 81 당신의 점수는 81입니다. 당신의 학점은 B- 입니다. 점수를 입력해주세요 = 100 당신의 점수는 100입니다. 당신의 학점은 A+ 입니다.
from http://burger-it.tistory.com/13 by ccl(A) rewrite - 2021-10-23 18:01:45