JAVA

[JAVA]제어문

로돌씨 2024. 2. 8. 18:38

if문:

if(...)문은 괄호 안에 들어가는 조건을 평가하는데, 그 결과가 true이면 코드 블록이 실행됩니다.

 

public class IfTest01 {
	public void testIf() {
		// 단독 if
		// 조건식의 결과값이 true이면 {}안에있는 코드가 실행
		// 조건식의 결과값이 false이면 {}안에있는 코드를 무시하고 넘어감

		Scanner sc = new Scanner(System.in);
		System.out.print("숫자를 한개 입력:");
		int num = sc.nextInt();
//짝수인지 홀수인지 판단 
		if (num % 2 == 0) {
			// true일때 실행
			System.out.println("입력하신 숫자는 짝수입니다.");

		}

		if (num % 2 != 0) {

			System.out.println("입력하신 숫자는 홀수입니다.");
		}

		System.out.println("프로그램 종료");

	}

	public void TestIfElse() {
		// if else구
		// 둘중 하나를 선택하는 조건
		// 조건이 참인 경우와 거짓인 경우에 수행하는 명령어들을 따로 작성하는 경우에 사용
		// else에는 조건식 사용 못함

		int i = 20;

		if (i < 10) {
			System.out.println("10보다 작습니다.");
		} else {
			System.out.println("10보다 크거나 같습니다.");

		}
	}

	public void TestIfElse2() {
		Scanner sc = new Scanner(System.in);
		System.out.println("0보다 큰 숫를 입력하세요.");
		int no = sc.nextInt();
		/*
		 * if (no >= 50) { System.out.println("50보다 큰 수"); // true일 때에 실행 } else {
		 * System.out.println("50보다 작은 수"); // false일 때에 실행 }
		 */
		// 단 ,50보다 큰수일 경우 짝수인지 홀수인지 출력.

		if (no >= 50) {
			if (no % 2 == 0) {
				System.out.println("입력하신 수는 50보다 큰 짝수 입니다.");
			} else {
				System.out.println("입력하신 수는 50보다 큰 홀수입니다.");

			}
		} else {
			System.out.println("50보다 작은 수 입니다.");
		}
	}

	public void TestElseIf() {
		int no1 = 30, no2 = 20;
		if (no1 > no2) {
			System.out.print("no1이 no2보다 크다.");
		} else if (no1 < no2) {
			System.out.print("no1이 no2보다 작다.");
		} else if (no1 == no2) {
			System.out.println("no1과 no2의 크기가 같다.");
			/*
			 * 굳이 else if (no1 == no2)를 치지않고 else{System.out.println("no1과 no2의 크기가 같다.")를
			 * 쳐도 됨 왜냐하면 어차피 둘다아니면 마지막 "크기가 같다"라는 구문만 남기 때문
			 */
		}
	}

	public void testElseIf2() {
		// 점수를 입력받아 등급을 나누고 출력
		// 90점이상 A 90점미만 80점 이상B ... 60점미만 F
		Scanner sc = new Scanner(System.in);
		System.out.print("점수를 입력하세요.");
		int score = sc.nextInt();
		char grade =' ';
		if (score >= 90) {
			grade = 'A';
		} else if (score < 90 && score >= 80) {
			grade = 'B';
		} else if (score < 80 && score >= 70) {
			grade = 'C';
		} else if (score < 70 && score >= 60) {
			grade = 'D';
		} else if (score < 60) {
			grade = 'F';

		}
		System.out.print(" 귀하의 점수는 " + score + "이고 , 등급은 " + grade + "입니다." );
		// printf
		// system.out.printf(%형식",값(변수));
		// 포맷문자
		/*
		 * %d 정수 %f 실수 %c 문자 %s 문자열 %d 논리값
		 * 
		 * %5d 5칸 확보하고 오른쪽 정렬 %-5d 5칸 확보하고 왼쪽정렬 %.2f 소수점 아래 2자리까지만 표시
		 */
		/*
		 * 특수문자 \t 정해진 공간만큼 띄우기 \n new line , 줄바꿈 \\ , \' ...
		 */
	}

}

→ if문과 else if 문

 

public class Test {
	public void test01(int i) {
//i는 매개변수
		if (i % 5 == 0) {
			System.out.println(i + "는 5의 배수입니다.");
		}

	}

	public void test02(int i) {
		if (i % 2 == 0 && i % 3 == 0) {
			System.out.println(i + "는 2와3의 배수입니다.");
		} else {
			System.out.println(i + "는 2와 3의 배수가 아닙니다.");

		}
	}

	public void test03(char ch) {
//소문자인지 확인하는 조건식
		if ((ch >= 'a') && (ch <= 'z')) {
			System.out.println(ch + " 는 소문자입니다.");
		} else {
			System.out.println(ch + "는 대문자입니다.");
		}
	}
	
}

→ if와 else를 이용한 출력문

 

switch문?

switch 구문은 변수를 입력받아 미리 정해놓은 여러값들과의 일치여부를 판단하여 결과를 출력함 .
public class SwitchTest01 {
	public void test() {
		int i = 1;
		switch (i) {
		case 1:
			System.out.println("1입니다.");
			break;
		case 2:
			System.out.println("2입니다.");
			break;
		case 3:
			System.out.println("3입니다.");
			break;
		default:
			System.out.println("다른 숫자입니다.");
			// 해당하는값을찾고 뒤에코드까지 다 실행해버림 그래서 break;를 적어주어야 함.
			// if는 다 하나하나 맞춰보고 건너뜀 switc는 값을 찾아서 그것만 실행함.

		}
		switch (i) {
		case 1:
		case 3:
			System.out.println("홀 수 입니다.");
			break;

		case 2:
		case 4:
			System.out.println("짝 수 입니다.");
			break;
//case 띄워주고 숫자
		}
		char ch = 'a';
		switch (ch) {
		case 'a':
			System.out.println("a입니다.");
			break;
		case 'b':
			System.out.println("b입니다.");
			break;
		case 'c':
			System.out.println("c입니다.");
			break;
		default:
			System.out.println("셋 다 아닙니다.");
		} // 문자도 가능
		
		
		String s = "한국";
		
		switch( s ) {
		case "한국":
			System.out.print("korea");
			break;
		case "미국":
			System.out.print("usa");
			break;
			//문자열도 가능 
		}
	}
}

→ switch문을 이용하면 바로 값을 찾아서 그것만 실행할수있다.

※break;를 적어주지않으면 다음 코드까지 실행 해버리니 주의

 

public class Munjae {
	public void test1() {
		// 국, 영, 수 세 과목(int)의 점수를 키보드로 입력받고,
		// 합계와 평균을 계산하고,
		// 세 과목의 점수와 평균을 가지고 합격 여부 처리함
		// 합격의 조건 : 세 과목의 점수가 각각 40점이상이고,
		// 평균이 60점 이상이면 합격,
		// 아니면 불합격 처리함
		// 합격인 경우에는 과목별 점수와 합계, 평균을 출력하고,
		// 불합격인 경우는 "불합격" 출력함
		int all;
		int ave;

		Scanner sc = new Scanner(System.in);
		System.out.println("국어점수를 입력하세요.");
		int kor = sc.nextInt();
		System.out.println("영어점수를 입력하세요.");
		int eng = sc.nextInt();
		System.out.println("수학점수를 입력하세요.");
		int math = sc.nextInt();

		all = (eng + math + eng);
		ave = (all / 3);
		if ((all >= 60) && (eng >= 40 && math >= 40 && kor >= 40)) {
			System.out.println("국어 점수는" + kor + "점이며 영어 점수는 " + eng + "점 이며 수학점수는 " + math + "점 입니다. 점수의 합계는 "
					+ (kor + eng + math) + "점 이며, 평균은 " + ave + "점 입니다.");

		} else {
			System.out.println("불합격입니다.");

		}
	}

	public void test2() {
		/*- switch문 사용함
		- 메소드명 : public void test2(){}	 
			<ex> 화면에 출력함
			*** 초기 메뉴 ***
			1. 입력
			2. 수정
			3. 조회
			4. 삭제
			7. 종료
			메뉴번호 입력 : 번호입력받음
			=> 처리내용 : 
				1 입력 --> "입력메뉴가 선택되었습니다."
				2 입력 --> "수정메뉴가 선택되었습니다."
				3 입력 --> "조회메뉴가 선택되었습니다."
				4 입력 --> "삭제메뉴가 선택되었습니다."
				7 입력 --> "프로그램이 종료됩니다."
				다른값 입력시 "번호가 잘못 입력되었습니다."
					  "다시 입력하십시오." 출력되게 함
		*/
		Scanner sc = new Scanner(System.in);
		System.out.println("1.입력 ");
		System.out.println("2.수정 ");
		System.out.println("3.조회 ");
		System.out.println("4.삭제 ");
		System.out.println("7.종료 ");
		System.out.println("메뉴번호 입력:  ");

		int i = sc.nextInt();
		switch (i) {
		case 1: {
			System.out.print("입력 메뉴가 선택되었습니다.");
			break;
		}
		case 2: {
			System.out.print("수정 메뉴가 선택되었습니다.");
			break;
		}
		case 3: {
			System.out.print("조회 메뉴가 선택되었습니다.");
			break;
		}
		case 4: {
			System.out.print("삭졔 메뉴가 선택되었습니다.");
			break;
		}
		case 7: {
			System.out.print(" 프로그램을 종료합니다.");
			break;
		}
		default: {
			System.out.println("번호가 잘못 입력 되었습니다.");
			System.out.println("다시 입력하십시오.");
		}

		}
	}

	/*
	 * - 메소드명 : public void test3(){} - 메소드 안 구현 내용 : 1. 정수 변수 선언 2. 키보드로 부터 정수 하나
	 * 입력받음 3. 입력받은 정수가 양수이면 "양수다." 출력 양수가 아니면 "양수가 아니다." 출력 4. main 에서 실행 테스트함.
	 */
	public void test3() {
		Scanner sc = new Scanner(System.in);
		System.out.print("정수를 입력하세요.");
		int i = sc.nextInt();
		if (i > 0) {
			System.out.print("양수다.");
		} else {
			System.out.print("양수가 아니다.");
		}

	}

	public void test4() {
		/*
		 * - 메소드 안 구현 내용 : 1. 정수 변수 선언 2. 문자열 변수 선언 3. 키보드로 부터 정수를 하나 입력 받음 단, 양수일 때만 4.
		 * 입력받은 정수가 짝수이면 "짝수다" 를 문자열에 기록하고 출력, 짝수가 아니면 "홀수다"를 문자열에 기록하고 출력함 <짝수의 조건> 어떤
		 * 수를 2로 나눈 나머지가 0과 같으면 짝수임.
		 */
		Scanner sc = new Scanner(System.in);
		System.out.print("정수를 입력하세요.");
		int i = sc.nextInt();
		String st = sc.nextLine();
		if (i >= 0) {
			if (i % 2 == 0) {
				System.out.print("짝수다.");
			} else {
				System.out.print("홀수다.");
			}
		}
	}

	public void inputTest() {
		/*- 메소드명 : public void inputTest(){}
		- 구현할 내용 : 
		1. 이름(String), 나이(int), 키(double) 변수 선언
		2. 각 값을 키보드로 입력받아, 각 변수에 저장함
		3. 이름이 null이 아니면서 글자갯수가 0보다 크고, 
		나이와 키가 양수일 때만 화면에 출력함.
		ex>
		이름 : 홍 길동
		나이 : 25
		키 : 187.5
		확인 : 홍 길동의 나이는 25세이고, 키는 187.5 cm 이다.
		*/
		Scanner sc = new Scanner(System.in);
		System.out.print("이름을 입력하세요.");
		String name = sc.next();
		System.out.print("나이를 입력하세요.");
		int age = sc.nextInt();
		System.out.print("키를 입력하세요.");
		double height = sc.nextDouble();

		if (name != null && age > 0 && height > 0 && name.length() > 0 ) {
			System.out.println("이름:" + name);
			System.out.println("나이:" + age);
			System.out.println("키:" + height);
			System.out.println("확인:" + name + "의 나이는 " + age + "세 이고, 키는 " + height + "cm 이다.");

		}
		

	}

	public void test6() {
		/*
		 * 메소드명 : public void test6(){} - 구현 내용 : 1. 두 개의 정수 변수 선언 2. 키보드로 두- 개의 정수를
		 * 입력받아, 단, 두 수 모두 양수일 때만 3. 두 수의 합, 차, 곱, 몫을 출력함 ex> 첫번째 정수 : 25 두번째 정수 : 7 25
		 * + 7 = 32 25 - 7 = 18 25 * 7 = 175 25 / 7 = 3 25 % 7 = 4
		 */
		Scanner sc = new Scanner(System.in);
		System.out.println("정수를 입력하세요.");
		int num = sc.nextInt();
		System.out.println("정수를 하나 더 입력하세요.");
		int i = sc.nextInt();

		if (num > 0 && i > 0) {
			System.out.println("첫번째 정수:" + num);
			System.out.println("두번째 정수:" + i);
			System.out.println(num + " + " + i + " = " + (num + i));
			System.out.println(num + " - " + i + " = " + (num - i));
			System.out.println(num + " * " + i + " = " + (num * i));
			System.out.println(num + " / " + i + " = " + (num / i));
			System.out.println(num + " % " + i + " = " + (num % i));
		}
		else { 
			System.out.print("양수가 아닌 숫자가 있습니다.");
		}
	}

	public void test7() {
		/*
		 * - 메소드명 : public void test7(){} - 구현 내용 : 1. 정수변수와 문자변수 선언 2. 키보드로 점수를 입력받아,
		 * 정수변수에 저장
		 * 
		 * 3. 다중 if문으로 점수가 90 이상이면 문자변수에 'A' 대입 80 이상 90 미만 'B' 70 이상 80 미만 'C' 60 이상 70
		 * 미만 'D' 60 미만 'F' 대입함 단, 점수는 반드시 0 이상의 값이여야 3번 진행. 4. 점수와 학점 출력 확인
		 */
		Scanner sc = new Scanner(System.in);
		System.out.print("점수를 입력하세요.");
		int score = sc.nextInt();
		char grade = ' '; /* 띄어쓰기도 문자로 표기 -> 
		그냥 char grade; 로 쓰면 출력문의 스코어에 에러가 남 
		*/

		if (score > 0) {
			if (score >= 90) {

				grade = 'A';
			} else if (score < 90 && score >= 80) {
				grade = 'B';
			} else if (score < 80 && score >= 70) {
				grade = 'C';
			} else if (score < 70 && score >= 60) {
				grade = 'D';
			} else if (score < 60) {
				grade = 'F';
			}

			System.out.print("점수는 " + score + " 점 이고, 학점은 " + grade + "입니다.");
		}

		// 중첩 이프문 괄호를 실수하여 음수임에도 출력이 되었었음 ..
	}
}

-> 실습과제 내용

 

'JAVA' 카테고리의 다른 글

[JAVA]배열  (0) 2024.02.14
[JAVA]조건문  (1) 2024.02.13
[JAVA] 연산자  (0) 2024.02.04
[JAVA]강제 형변환 , 접근 제한자  (0) 2024.02.02
[JAVA] 변수  (1) 2024.02.01