6/16 java

HMS·2022년 6월 17일
0
  • shift tab 누르면 뒤로이동

제어문

  • 입력 -> 출력 사이에 조건을 넣고 실행 흐름을 제어
  • 조건문 if, 반복문 for, 분기문 swich~case

if문

  • if(조건식){
    }

  • if(조건식){
    } else {
    }

  • if(조건식){
    } elseif(조건식) {
    } else {
    }

if예제. 입력받은 정수음수0판별

package com.kh.Control;

import java.util.Scanner;

public class Exam_If {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("정수 하나 입력 : ");
		int num = sc.nextInt();
//		boolean result = num == 0;
		if(num == 0) {
//			System.out.println("결과 : true");
			System.out.println("0입니다.");
		} else if(num > 0) { //0이 아닌 수 양수 음수
//			System.out.println("0이 아니야");
			System.out.println("양수입니다.");
		} else {
			System.out.println("음수입니다.");
		}
		// = 삼항연산자 코드
		String result = num == 0 ? "0입니다." : num > 0 ? "양수입니다." : "음수입니다.";
		
		if(num > 0) {
			System.out.println("양수입니다.");
		} else if(num < 0 ) {
			System.out.println("음수입니다.");
		} else {
			System.out.println("0입니다.");
		}
	}
}

if예제2. if문작성하여 객체지향이용해서 실행해 보기

	// 키보드로 정수를 입력받고 입력받은 정수가 양수이고
	// 짝수일 때 "짝수다"를 출력하고 짝수가 아니면 "홀수다"를 출력하세요
	// 단, 양수가 아니면 "양수만 입력해주세요"를 출력하세요.
	// 정수하나 입력해주세요 : 4
	// 짝수다.

	// 정수하나 입력해주세요 : -2
	// 양수를 입력해주세요.
  1. 객체문
package com.kh.exercise;

import java.util.Scanner;

public class Exercise_If {
	public void exercise1() {
		// 키보드로 정수를 입력받고 입력받은 정수가 양수이고
		// 짝수일 때 "짝수다"를 출력하고 짝수가 아니면 "홀수다"를 출력하세요
		// 단, 양수가 아니면 "양수만 입력해주세요"를 출력하세요.

		// 정수하나 입력해주세요 : 4
		// 짝수다.

		// 정수하나 입력해주세요 : -2
		// 양수를 입력해주세요.
		Scanner sc = new Scanner(System.in);
		System.out.print("정수를 입력해 주세요 : ");
		int iNum = sc.nextInt();
		
//		if( iNum < 1 ) {
//			System.out.println("양수만 입력해주세요");
//		} else if( iNum % 2 == 0 ) {
//			System.out.println("짝수다");
//		} else {
//			System.out.println("홀수다");
//		}
		
		if( iNum > 0 && iNum % 2 == 0 ) {
			System.out.println("짝수다");
		} else if( iNum > 0 ) {
			System.out.println("홀수다");
		} else {
			System.out.println("양수만 입력해주세요");
		}
		
		if( iNum > 0 ) {
			if (iNum % 2 == 0) {
				System.out.println("짝수");
			} else {
				System.out.println("홀수");
			}
		} else {
			System.out.println("양수만 입력해주세요");
		} // 중첩이프

	}
}
  1. 실행문
package com.kh.run;

import com.kh.exercise.Exercise_If;

public class Run {
	public static void main(String [] args) {
		Exercise_If result = new Exercise_If();
		result.exercise1();
	}
}

if예제3. 심화

	/*
	 * 중간고사, 기말고사, 과제점수, 출석회수를 입력하고
	 * Pass 또는 Fail을 출력하세요.
	 * 평가비율은 중간고사 20%, 기말고사 30%, 과제 30%, 출석 100%로 이루어져있고
	 * 이 때, 출석 비율은 총 강의 회수 20회 중에서 출석한 날만 따진 값으로 계산
	 * 70점 이상일 경우 Pass(단, 출석횟수 충족), 70점 미만이거나
	 * 전체 강의의 30%이상 결석 시 Fail을 출력하세요.
	 * 
	 * 중간 고사 점수(20) : 70  -> middle*0.2
	 * 기말 고사 점수(30) : 80  -> top*0.3
	 * 과제 점수       (30) : 77 ->practics*0.3
	 * 출석 점수      (100) : 18 ->
	 * 
	 * 총점 : 78
	 * Pass입니다!
	 */
package com.kh.exercise;

import java.util.Scanner;

public class Exercise_If {
	public void exercise2() {

		Scanner sc = new Scanner(System.in);
		System.out.print("중간고사 점수를 입력하세요 : ");
		int middle = sc.nextInt();
		System.out.print("기말고사 점수를 입력하세요 : ");
		int top = sc.nextInt();
		System.out.print("과제 점수를 입력하세요 : ");
		int practics = sc.nextInt();
		System.out.print("출석횟수를 입력하세요 : ");
		int chol = sc.nextInt();
		
		double num =  middle*0.2 + top*0.3 + practics*0.3 + chol;
		System.out.println();
		System.out.println("총점 : " + num);
		
		if(num < 70)  {
			System.out.println("총점 70점 미만 Fail 입니다!");
		} else if( chol <= 6 ){
			System.out.println("출석 30% 미만 Fail 입니다!");
		} else {
			System.out.println("pass 입니다!");
		}
        
 //		if(num < 70 || chool <= 6)  {
//			if( num < 70 && chool <= 6) {
//				System.out.println("둘다미달 Fail 입니다!");		
//			} else if( chool <= 6 ) {
//				System.out.println("출석 30% 미만 Fail 입니다!");
//			} else {
//				System.out.println("총점 70점 미만 Fail 입니다!");	
//			}
//		} else {
//			System.out.println("pass 입니다!");
//		}
		
	}
	
}

  • 연산을 최대한 줄일 수 있는 방도를 고민하자

switch문

  • 선택문 (switch~case)
package com.kh.exercise;

import java.util.Scanner;

public class Exercise_Switch {
	public void exercise1() {
		Scanner sc = new Scanner(System.in);
		// 1 ~ 3 사이의 정수를 입력받아
		// 1인 경우 빨간색 입니다.
		// 2인 경우 파란색입니다.
		// 3인 경우 초록색입니다.
		// 그외의 정수를 입력할 경우 잘못입력하셨습니다를 출력하세요.
		System.out.println("1. 빨간색");
		System.out.println("2. 파란색");
		System.out.println("3. 초록색");
		System.out.print("1~3사이 정수를 입력해 주세요 : ");
		int color = sc.nextInt();
		switch(color) { // break안쓰면 case다 나옴
		case 1 : System.out.println("빨간색입니다."); break;
		case 2 : System.out.println("파란색입니다."); break;
		case 3 : System.out.println("초록색입니다."); break;
		default : System.out.println("잘못입력하셨습니다."); break;
		}
	}
	public void exercise2() {
		Scanner sc = new Scanner(System.in);
		/*
		 * 정수 두개와 연산기호 문자 1개를 입력받아서
		 * 연산기호문자(+,-,*,/)에 해당하는 계산을 수행하고 출력하세요.
		 * 단, 그 외의 문자를 입력할 경우 연산자를 잘못입력하셨습니다를 출력하세요.
		 */
		System.out.print("첫번째 정수를 입력하세요 : ");
		int iNum1 = sc.nextInt();
		System.out.print("두번째 정수를 입력하세요 : ");
		int iNum2 = sc.nextInt();
		System.out.print("연산기호문자(+,-,*,/)를 입력해 주세요 : ");
		char cp = sc.next().charAt(0);
		int result =0; // 쓰레기값이 되지 않게 하기위해 0으로 초기화
		switch(cp) {
//		case '-' : System.out.println(iNum1 - iNum2); break;
		case '-' : result = (iNum1 - iNum2); break; //더 가벼운 방법
		case '+' : result = (iNum1 + iNum2); break;
		case '*' : result = (iNum1 * iNum2); break;
		case '/' : result = (iNum1 / iNum2); break;
		default : System.out.println("연산자를 잘못입력하셨습니다."); break;
		}
		if(result != 0) {
			System.out.println("결과 : " + result);
		}
		
		
		
	}
	public void exercise3() {
		/*
		 * 1 ~ 12 사이의 숫자를 입력받아 해당하는 숫자 달의 마지막 날짜를 출력하세요.
		 * 그외의 숫자를 입력할 경우 1 ~ 12 사이의 숫자를 입력하세요를 출력하세요
		 * 
		 * 1월 ~ 12월까지 중 하나를 입력하세요 : 3
		 * 입력하신 월은 31일까지입니다.
		 * 
		 */
		Scanner sc = new Scanner(System.in);
		System.out.print("1 ~ 12월 중 하나를 입력하세요 : ");
		int iMonth = sc.nextInt();
		switch(iMonth) {
//		case 1 : System.out.println("입력하신 월은 31일까지입니다."); break; //제일 직관적인방법
		case 1 : 
		case 3 : 
		case 5 : 
		case 7 : 
		case 8 : 
		case 10 : 
		case 12 : System.out.println("입력하신 "+ iMonth + "월은 31일까지입니다."); break;
		case 2 : System.out.println("입력하신 "+ iMonth + "월은 28일까지입니다."); break;
		case 4 : 
		case 6 : 
		case 9 : 
		case 11 : System.out.println("입력하신 "+ iMonth + "월은 30일까지입니다."); break;
		// break를 주지 않음으로써 break가 걸리는곳까지 진행
		default : System.out.println("1 ~ 12 사이의 숫자를 입력하세요."); break;
		}
		
	}
}

반복문- for문

  • for(초기식;조건식;증감식)
  • 조건을 만족할때까지 증감식을 반복시행
  • 초기식은 무조건 1번 시행 후 조건식 만족할때까지 반복

반복문 - while문

3번문제

profile
안녕하세요

0개의 댓글