JAVA

Test030 조건문 if

2020. 9. 2. 21:08

※ 사용자로부터 임의의 정수를 입력받아 입력받은 정수가 짝수인지 홀수인지 판별하여 결과를 출력하는 프로그램을 구현한다. 단, BufferedReader 의 readLine() 메소드를 통해 입력받을 수 있도록 처리하고 if 문을 활용하여 구현할 수 있도록 한다. (else 는 아직 사용하지 않는다.)



import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test030
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int num;

		System.out.print("임의의 정수 입력 : ");
		num = Integer.parseInt(br.readLine());

		if(num%2==0)
		{
			System.out.printf(">> %d는 짝수입니다.\n",num);
		}

		if(num%2!=0)
		{
			System.out.printf(">> %d는 홀수입니다.\n",num);
		}
	
	}
}

// 실행 결과
/*
임의의 정수 입력 : 13
>> 13는 홀수입니다.
계속하려면 아무 키나 누르십시오 . . .

임의의 정수 입력 : 24
>> 24는 짝수입니다.
계속하려면 아무 키나 누르십시오 . . .
*/

※ 사용자로부터 임의의 연도를 입력받아 입력받은 연도가... 윤년인지 평년인지 판별하여 그 결과를 출력하는 프로그램을 구현한다. 단, 입력은 BufferedReader 를 활용하고 조건연산자를 활용하여 연산을 수행할 수 있도록 한다.

 실행 예)
 임의의 연도 입력 : 2000
 2000년 → 윤년
 계속하려면 아무 키나 누르세요...

 임의의 연도 입력 : 2012
 2012년 → 윤년
 계속하려면 아무 키나 누르세요...

 임의의 연도 입력 : 2020
 2020년 → 윤년
 계속하려면 아무 키나 누르세요...

 ※ 2월이 28일 까지 있는 해 → 평년
 29일 까지 있는 해 → 윤년

 ※ 윤년의 판별 조건
   연도가 4의 배수이면서 100의 배수가 아니거나
   400의 배수이면 윤년~!!!
   그렇지 않으면 평년~!!!



import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test029
{
	public static void main(String[] args) throws IOException
	{
		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		// 주요 변수 선언
		int year;			//-- 사용자로부터 입력받은 연도를 담아둘 변수
		String yearCheck;	//-- 윤년인지 평년인지에 대한 판별 결과를 담아둘 변수
		
		// 연산 및 처리
		System.out.print("임의의 연도 입력 : ");
		year = Integer.parseInt(br.readLine());
		yearCheck = (year % 4 == 0 && (year %100 != 0 || year % 400 == 0)) ? "윤년" : "평년";
		
		// 결과 출력
		System.out.println(year + " → " + yearCheck);
	}
}
// 실행 결과
/*
임의의 연도 입력 : 2000
2000 → 윤년
계속하려면 아무 키나 누르십시오 . . .

임의의 연도 입력 : 2012
2012 → 윤년
계속하려면 아무 키나 누르십시오 . . .

임의의 연도 입력 : 2020
2020 → 윤년
계속하려면 아무 키나 누르십시오 . . .
*/

※ 사용자로부터 임의의 한 문자를 입력받아 알파벳 대문자이면 소문자로, 알파벳 소문자이면 대문자로 그 외 다른 문자이면 그 문자 그대로 출력하면 프로그램을 작성한다. 단, 조건연산자(삼항연산자)를 활용하여 구현할 수 있도록 한다.

 실행 예)
 한 문자를 입력하세요 : a
 A

 한 문자를 입력하세요 : H
 h

 한 문자를 입력하세요 : 6
 6

 ※ 문제 인식 및 분석
   1. 단 한 문자를 입력받는 프로그램이기 때문에
  System.in.read() 메소드를 사용.
   2. 입력받을 수 있는 문자의 유형에 따라 분기
  → 알파벳 대문자 / 알파벳 소문자 / 나머지 기타 문자
   3.  System.in.read() 메소드는 한 문자를 입력받아
  그 문자에 해당하는 ASCII Code(정수형)을 반환
   4. 이로 인해 반환된 값을 통한 조건 구성 필요.



import java.io.IOException;

public class Test028
{

	{
		/*
		// 주요 변수 선언
		int ascii;

		// 연산 및 처리
		System.out.print("한 문자를 입력하세요 : ");
		ascii = System.in.read();
		ascii = (65 <= ascii && ascii <= 90 ) ? (ascii+32) : ( (97 <= ascii && ascii <= 122) ? (ascii-32) : (ascii) );
		
		// 결과 출력
		System.out.printf("%c\n",ascii);
		*/

		// 주요 변수 선언
		char ch, chResult;	//-- 입력 문자, 결과 문자를 담아낼 변수
		char temp;			//-- 입력 문자에 대한 연산을 수행하기 전에 담아둘 변수

		// 연산 및 처리
		// ① 사용자에게 안내 메세지 출력
		System.out.print("한 문자를 입력하세요 : ");

		// ② 사용자가 입력한 값을 얻어와 변수 ch 에 담아내기
		ch = (char)System.in.read();
		temp = ch;

		
		// ③ 조건에 따른 분기 연산 처리
		//알파벳대문자 ? 소문자로 변환 : (알파벳소문자 ? 대문자로 변환 : 있는그대로)

		chResult = (ch >= 'A' && ch <= 'Z') ? (char)(ch += 32) : ((ch >= 'a' && ch <= 'z') ? (char)(ch-=32) : ch);

		// 결과 출력
		System.out.println(temp + " → " + chResult);
	
	}
}
// 실행 결과

/*
한 문자를 입력하세요 : A
A → a
계속하려면 아무 키나 누르십시오 . . .

한 문자를 입력하세요 : c
c → C
계속하려면 아무 키나 누르십시오 . . .

한 문자를 입력하세요 : 9
9 → 9
계속하려면 아무 키나 누르십시오 . . .
*/

 

※ 사용자로부터 임의의 정수를 입력받아 입력받은 정수가 양수인지, 음수인지, 영인지 구분하여, 이 결과를 출력하는 프로그램을 구현한다. 단, 입력 데이터는 BufferedReader 의 readLine() 을 통해 넘겨받을 수 있도록 하며 조건연산자(삼항연산자)를 활용하여 기능을 구현할 수 있도록 한다.

 실행 예)
 임의의 정수 입력 : -12
 -12 → 음수
 계속하려면 아무 키나 누르세요...

 임의의 정수 입력 : 257
 257 → 양수
 계속하려면 아무 키나 누르세요...

 임의의 정수 입력 : 0
 0 → 영
 계속하려면 아무 키나 누르세요...



import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test027
{
	public static void main(String[] args) throws IOException
	{
		//주요 변수 선언
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int nNum;				//-- 사용자의 입력값을 담을 변수
		String strResult;		//-- 판별 결과(양수인지 음수인지 영인지)를 담을 변수


		// 연산 및 처리
		// ① 사용자에게 안내 메세지 출력
		System.out.print("임의의 정수 입력 : ");

		// ② 사용자의 입력값을 정수로 변환 후 변수 nNum 에 담아내기
		nNum = Integer.parseInt(br.readLine());

		// ③ 조건 연산 처리(분기문)
		/*
		n이 0보다 크다 -true	→ nNum은 양수
					   -false	→ nNum이 0보다 작다	- true  → nNum은 음수
					   									- false → nNum은 영
					 
		*/

		//(nNum > 0) ? (①) : (②);
		//(nNum > 0) ? ("양수") : (②);
		//(nNum > 0) ? ("양수") : ( (nNum이 0보다 작다) ?  (③):(④) );
		strResult = (nNum > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영") );

		//strResult = (-12 > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영"));
		//strResult = (false > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영"));
		//strResult = (nNum > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영"));
		//strResult = (nNum > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영"));
		//strResult = (nNum > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영"));
		//strResult = (nNum > 0) ? ("양수") : ( (nNum < 0) ? ("음수") : ("영"));
		

		// 결과 출력
		System.out.println(nNum + " → " +strResult);



/*
		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 주요 변수 선언
		int num;
		String str = "영";

		// 연산 및 처리
		// ①사용자에게 입력받은 문자형태의 정수로 파싱해 저장
		System.out.print("임의의 정수 입력 : ");
		num = Integer.parseInt(br.readLine());
		
		// ②
		str = (num > 0 ) ? "양수": "
		str = (num 

		// 결과 출력
		System.out.printf("%d → %s\n",num,str);

*/
	}
}
// 실행 결과

/*
임의의 정수 입력 : -12
-12 → 음수
계속하려면 아무 키나 누르십시오 . . .

임의의 정수 입력 : 36
36 → 양수
계속하려면 아무 키나 누르십시오 . . .

임의의 정수 입력 : 0
0 → 영
계속하려면 아무 키나 누르십시오 . . .
*/

삼항 연산자

조건식  연산자 피연산자 연산자 피연산자
--------               ---------                ----------- 
   1항                    2항                         3항

조건식? 피연산자 : 피연산자
--------  --------     --------
   1항      2항           3항

 

  • 조건식 ? 피연산자1 : 피연산자2

    • 조건식의 연산결과가 true 이면, 결과는 피연산자 1이고, 조건식의 연산결과가 false 이면 결과는 피연산자2

    int b1 = (5>4) ? 50 : 40; //조건식이 true이므로 b1은 50이 된다.

    • 피연산자1, 피연산자2 에는 주로 값이 오지만, 경우에 따라 연산식이 올 수 있다.
    • 삼항 연산자가 익숙하지 않다면, if문으로 바꾸어 이용해도 좋다.

 

 사용자로부터 임의의 정수를 입력받아 입력받은 정수가 짝수인지 홀수인지 판별할 수 있는 프로그램을 구현한다. 
 단, 조건연산자(삼항연산자)를 활용하여 작성할 수 있도록 한다.

 실행 예)
 임의의 정수 입력 : 5

 ==[판별 결과]==
 5 → 홀수
 =========== 
 계속하려면 아무 키나 누르세요...


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test026
{
	public static void main(String[] args) throws IOException
	{
		// 주요 변수 선언
		int nNum;			//-- 사용자로부터 입력받은 정수 형태의 데이터를 담아둘 변수
		String strResult;	//-- 홀수인지 짝수인지에 대한 판별 결과를 담아둘 변수
		
		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		
		// 연산 및 처리
		// ① 사용자에게 안내 메세지 출력
		System.out.print("임의의 정수 입력 : ");

		// ② 입력값(문자열)을 정수 형태로 변환 후 변수 nNum 에 담아내기
		nNum = Integer.parseInt(br.readLine());
		
		// ③ 홀수인지 짝수인지에 대한 판별 연산
		//	  --------? -------: ------;
		//		수식1	 수식2	  수식3

		//    수식1 : 참(true) 또는 거짓(false)을 반환할 수 있는 수식 형태로 작성. 
		//    수식2 : 수식1의 처리 결과가 참(true)일 경우 수행하는 영역
		//	  수식3 : 수식1의 처리 결과가 거짓(false)일 경우 수행하는 영역

		//	  입력받은 정수(nNum)가 홀수인지 짝수인지 확인하기 위한 연산
		//	  → 입력값(nNum)을 2로 나눈 나머지가 0이면...          →짝수
		//										  0이 아니면...     →홀수
		strResult = (nNum % 2 == 0) ? "짝수" : "홀수";
		// strResult = (10 % 2 == 0) ? "짝수" : "홀수";
		// strResult = (0 == 0) ? "짝수" : "홀수";
		// strResult = (true) ? "짝수" : "홀수"
		// strResult = "짝수";


		// 결과 출력
		System.out.println();
		System.out.println("==[판별 결과==");
		
		System.out.printf("%d → %s\n", nNum,strResult);

		System.out.println("==============");
		
	
	}
}
// 실행 결과

/*
임의의 정수 입력 : 28

==[판별 결과==
28 → 짝수
==============
계속하려면 아무 키나 누르십시오 . . .

임의의 정수 입력 : 13

==[판별 결과==
13 → 홀수
==============
계속하려면 아무 키나 누르십시오 . . .
*/

Test025 논리 연산자

2020. 9. 2. 18:13


 

public class Test025
{
	public static void main(String[] args)
	{
		boolean a = true, b = false;

		System.out.printf("a && b : %b\n", (a&&b));
		System.out.printf("a || b : %b\n", (a||b));
		System.out.printf("!a     : %b\n", !a);
		System.out.printf("!b     : %b\n", !b);
	}
}

// 실행 결과
/*
a && b : false
a || b : true
!a     : false
!b     : true
계속하려면 아무 키나 누르십시오 . . .
*/

+ Recent posts