제어문-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