[JAVA]6일차(주석/삼항연산자/조건문 if/if 오름차순 정렬/윤년, 평년 판별)
7월21일(수)
오늘은 강사님이 마사지하는 법을 알려주심
어깨랑 목 안그래도 아팠는데 어찌아시고..
완전꿀팁💡
-> 엄지손가락을 접었을 때 뾰족한 부분을 쇄골안에 넣고 어깨 주물주물하면 손에 힘안들이고 시원하게 주무를수 있다. 진짜 시원 ㅋㅋ
그리고 눈침침하다고 화면 어둡게하면 눈에 더 안좋다고한다!
test028~Test033
◼ /**/ 주석 사용
- /**/ 주석은 중첩해서 쓸 수 없음!!
- // 주석은 상관없음!
◼ 삼항연산자(두개 이상도 가능)
- 삼항연산자란?
-> a?b:c -> a가 참이면 b, 거짓이면 C - 삼항연산자에 조건을 계속 추가할 수 있음
->
Test028
strResult = (n>0) ? "양수" : ((n<0) ? ("음수") : ("영"));
/*
n이 0보다 크다 -> true -> n은 양수
-> false -> n이 보다 작다 -> true -> n은 음수
-> false -> n은 영
*/
▪ 윤년, 평년 판별(삼항연산자 이용)
※ 윤년의 판별 조건 ※
연도가 4의 배수이면서 100의 배수가 아니거나 400의 배수이면 윤년 ~!! 그렇지 않으면 평년~!!
- 하나의 공간에 두개이상의 조건이 오면 무조건 논리연산(&&, ||, !)이 와야함!!
Test028
strResult = (year%4==0) && (year%100!=0) || (year%400==) ? "윤년" : "평년";
5. 실행흐름의 컨트롤
◼ 제어문⊂조건문(=분기문) : if, switch
▪ if문과 if~else문
if(조건식)
{
//조건식이 참이면 실행되는 영역
}
//조건식이 거짓이면 실행되는 영역
- 혼자서 쓰이는 if는 있지만 혼자서 쓰이는 else는 없다.
- if 는 중첩해서 사용가능 (하고싶은만큼 중첩 가능)
- 모든문장으 else로 끝나야 하는 것 아님 else if로도 끝날 수 있음
- But! if 문의 조건에 안들어가는 경우, 선언 안하고 출력하라니까 에러날 수 밖에 없기 때문에 초기값을 선언하자!
▪ if 이용해서 등급 구하기!
/*
90점 ~ 100점 : A
80점 ~ 89 : B
70점 ~ 79점 : C
60점 ~ 69점 : D
60점 미만 : F
단, BufferedReader를 활용하여 데이터를 입력받을 수 있도록 하며,
printf()메소드를 통해 출력할 수 있도록 구현한다.
실행예)
이름 입력 : 정효진
국어 점수 : 90
영어 점수 : 80
수학 점수 : 70
>> 당신의 이름은 정효진입니다.
>> 국어 점수는 90,
>> 영어 점수는 80,
>> 수학 점수는 70,
>> 총점은 240이고, 평균은 80입니다.
>>등급은 B입니다.
계속하려면 아무 키나 누르세요...
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test029
{
public static void main(String[] args) throws IOException
{
String strName;
char grade='F'; //--check~!!
//grade 값을 if안에 조건에 안들어가는 경우, 선언 안하고 출력하라니까 에러날 수 밖에 없음!
int kor, eng, mat;
int sum;
double avg;
// (... 중간코드 생략...)
//등급 정하기
if(avg<=200)
{
if(avg>=90 && avg<=100)
{
grade = 'A';
}else if(avg>=80)
{
grade = 'B'; //어차피 90미만인 애들만 내려오기로 했으니까 (avg>80)만 써도됨!!
}else if(avg>=70)
{
grade = 'C';
}else if(avg>=60)
{
grade = 'D';
}else
{
grade = 'F';
}
}
//결과 출력
//(...생략...)
System.out.println(">> 등급은 " + grade + "입니다.");
System.out.printf("\n>> 등급은 %c 입니다.",grade);
}
}
▪ if 이용해서 0, 짝수, 홀수 구분
//이 코드의 핵심은 0을 제일 처음에 걸러내는 것이 제일 중요!!!---check~!!
//짝수 거를때도 0이 있기 때문!
//Test030
int n;
String strResult = "판별불가"; //초기화!!
if(n==0)
{
strResult = "영";
}else if(n%2==0)
{
strResult = "짝수";
}else if(n%2!=0)
{
strResult = "홀수";
}
👩💻퀴즈 위에 윤년, 평년 구하는 것을 삼항연산자가 아닌 if를 이용해서 코드를 작성하시오.
//연도가 4의 배수이면서 100의 배수가 아니거나 400의 배수이면 윤년 ~!! 그렇지 않으면 평년~!!
//Test031
//주요 변수 선언
int year;
String result = "다시 입력"; //--->초기화
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//연산 및 처리
System.out.print("임의의 연도 입력 : ");
year = Integer.parseInt(br.readLine());
/* 방법 1
//연도가 4의 배수이면서 100의 배수가 아니거나 400의 배수이면 윤년 ~!! 그렇지 않으면 평년~!!
if(year%4==0 && year%100!=0 || year%400==0)
result = "윤년";
else
result = "평년";
*/
// 방법 2
if(year%4==0) //-----------4의 배수 확인
{
if(year%100!=0) //------4의 배수 중 100의 배수가 아닌 것 윤년
result = "윤년";
else if(year%400==0) //-4의 배수 중 100의 배수인 것 윤년
result = "윤년";
}else
{
result = "평년"; //-----연도가 4의 배수가 아니고 아닌 것 평년
}
//출력 결과
System.out.printf("%d년 -> %s\n", year, result);
/*
임의의 연도 입력 : 2021
2021년 -> 평년
계속하려면 아무 키나 누르십시오 . . .
임의의 연도 입력 : 2020
2020년 -> 윤년
계속하려면 아무 키나 누르십시오 . . .
임의의 연도 입력 : 2012
2012년 -> 윤년
계속하려면 아무 키나 누르십시오 . . .
*/
▪ if 이용해서 연산자 입력받기
//Test032
/*
실행 예)
첫 번째 정수 입력 : 20
두 번째 정수 입력 : 14
연산자 입력[+ - * /] : +
>> 20 + 14 = 34
계속하려면 아무 키나 누르세요...
*/
int num1, num2, result = 0;
char op;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("첫 번째 정수 입력 : ");
num1 = Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
num2 = Integer.parseInt(br.readLine());
System.out.print("연산자 입력[+ - * /] : ");
op = (char)System.in.read(); //----check~!!!!!point~!!!
if(op == '+')
result = num1 + num2;
else if(op == '-')
result = num1 - num2;
else if(op == '*')
result = num1 * num2;
else if(op == '/')
result = num1 / num2;
System.out.printf("\n>> %d %c %d = %d\n", num1, op, num2, result);
▪ if 이용해서작은 수에서 큰 수 순으로 출력
//Test033
/*
실행 예)
첫 번째 정수 입력 : 5
두 번째 정수 입력 : 15
세 번재 정수 입력 : 10
>> 정렬 결과 : 5 10 15
계속하려면 아무 키나 누르세요...
*/
// 7 8 2 8 6 13 10 50 30 9 30 45
// --- --- ----- ---- 첫 번째 두 번째 비교
// 6 8 13
// - - - -- -- -- - -- 첫 번째 세 번째 비교
// 2 8 7
// - - - - - - - - 두 번째 세 번째 비교
// 2 7 8 6 8 13 10 30 50 9 30 45
// if 를 따로따로 만드는 이유는 전부다 수행해야하니까! else아님!! ---check~!!
//이거 이용해도 되고
a = a^b;
b = b^a;
a = a^b;
↓
if(a>b)
{
a = a^b;
b = b^a;
a = a^b;
}
if(b>c)
{
b = b^c;
c = c^b;
b = b^c;
}
if(a>b)
{
a = a^b;
b = b^a;
a = a^b;
}
//이거 이용해도 됨
temp = a;
a = b;
b = temp;
//아니면 a,b,c 부등호로 다 비교해도 됨
//헷갈려...
열심히 복습하자!🌱
Author And Source
이 문제에 관하여([JAVA]6일차(주석/삼항연산자/조건문 if/if 오름차순 정렬/윤년, 평년 판별)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyojin_j/국비지원-개발자-양성과정-6일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)