[day03]
1. 연산자 operator
1) 종류
단항 연산자 : + - (int 타입등) ++ -- !
이항 연산자 : 산술연산자 : + - * / %
비교연산자 : < <= > >= == != (결과 true/false)
논리연산자 : && ||
삼항 연산자 : ? :
대입 연산자 : =
복합대입 연산자 : 산술 + 대입 : = += -= *= /= %=
(쉬프트/비트 연산자)
2) 연산자 우선순위 (높은순)
단항연산자 : ++ -- (전위형)
+ - (양수음수)
++ -- (후위형)
형변환 : (타입)
산술연산자 : * / %
: + - (덧셈뺄셈)
(쉬프트)
비교연산자 : < <= > >= instanceof
: == !=
(비트)
논라연산자 : && (and)
: || (or)
삼항연산자 : ?:
복합대입연산자 : = += -= *= /= %=
2. 제어문
- 조건문 : if, switch
- 반복문 : While, do-while, for, 업그레이드 for (forEach)
- 보조제어문 : break, continue
break : 강제종료
continue : (반복문에서 주로 사용) 아래 작성된 실행문 건너뛰고 다음 반복으로 넘어간다.
3. 조건문 if
조건이 참이면 영역안의 코드를 실행
1) 구조
#1.
if(조건식){
//조건이 참일 경우 실행해야될 코드들 작성
}
조건식 : 비교연산이나 논리연산이 혼합된 식으로 구성한다.
또는 boolean 타입의 변수가 올 수 있다.
-> 결과 또는 값이 true/ false가 와야함
영역을 뜻하는 {} 중괄호 기호는 영역안에 들어갈 명령문이 1개면 생략가능
#2.
if(조건식){
//조건이 참일 경우 실행할 코드들
}else {
//조건이 거짓일 경우 실행할 코드들
}
else : 뒤에 조건식이 안붙고 바로 {} 영역
혼자 사용불가. if와 else의 순서가 바뀌어도 안됨
옵션처럼 반드시 써야되지는 않는다.
#3.
if(조건식1){
//조건식1이 참이면 실행할 코드들
}else if(조건문2){
//조건식2이 참이면 실행할 코드들
}else if(조건문3){
//조건식3이 참이면 실행할 코드들
}else {
// 위의 모든 조건이 거짓일때 실행할 코드들..
}
package day03;
public class Test20 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 증감 연산자 : ++, --
// 전위형 : 나 먼저
// 후위형 : 가장 나중에
/*
int a = 10;
System.out.println(a);
++a;
System.out.println(a);
--a;
System.out.println(a);
System.out.println(++a);
System.out.println(--a);
*/
int b = 10;
System.out.println(b);
System.out.println(b++);
System.out.println(b);
}
}
package day03;
public class Test21 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 대입연산자 : 대입해야 변수안의 값이 변견된다.
/* int a = 10;
System.out.println(a+10);
System.out.println(a);
// a = a + 10
int i =5 , j = 5;
System.out.println(i++); // 5
System.out.println(++j); // 6
System.out.println(+j);
System.out.println("i=" +i+", j=" + j );
*/
// 문제 1. 출력결과를 먼저 주석으로 적어보고 실행
/*
int k = 10;
System.out.println(k++); // 10
System.out.println(++k); // 12
++k; // 13
System.out.println(++k); // 14
System.out.println(k++); // 14
System.out.println(k); // 15
*/
//문제2 r의 결과
int a = 10;
int b = 10;
int r = ++a + ++b; // 11+ 11 22
r = ++a + b++;
//System.out.println(r);// 12 + 11 23
r = ++a + a ;
//System.out.println(r);// // 13 + 13
r = ++a + a++ ;
//System.out.println(r);// // 14 + 14
r = ++a + ++a ; // // 16 + 17
System.out.println(r);
}
}
package day03;
public class Test22 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 단축키
* 실행 : ctrl + F11
* syso 적고 ctrl + space
* 공백만들기 shift + enter 공백만들기
* 한줄복사 : ctrl + alt + 화살표 위/아래
* 이동 : alt + 화살표 위/아래
* 한줄삭제 : ctrl + D
* 맨첫줄로 : Home / 맨뒷줄로 END
*
* */
// 사칙연산 : + - * / % (나머지값)
int a = 10 + 10;
System.out.println(a);
int b = 10 % 3 ; // (나머지 값)
System.out.println(b);
long l = (long) 100000 * 100000; // * 100000 은 인트타입이라 long 형변환 해줘야함
long k = 100000L * 100000; // * 100000 은 인트타입이라 long 형변환 해줘야함
System.out.println(l);
System.out.println(k);
}
}
package day03;
import java.util.Scanner;
public abstract class Test23 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
// 문제1. 숫자 2개를 입력받고, 사칙연산 결과를 출력해보세요.
Scanner No1 = new Scanner(System.in);
int num1 , num2 ;
System.out.println("값 1을 입력하세요 >>");
/* int num1 = Integer.parseInt(sc.nextLine()); */
/*num1 = No1.nextInt();
System.out.println("값 2를 입력하세요 >>");
/*int num2 = Integer.parseInt(sc.nextLine()); */
/*num2 = No1.nextInt();
System.out.println("덧셈출력값은" + (num1 + num2) + "입니다") ;
System.out.println("곱셈출력값은" + (num1 * num2) + "입니다");
System.out.println("뺄셈출력값은" + (num1 - num2) + "입니다");
System.out.println("나눗셈출력값은" + (num1 / num2) + "입니다");
*/
// 문제2. 초단위로 정수를 입력받고,
// 계산된 "??분??초" 형태로 출력해보세요.
Scanner No2 = new Scanner(System.in);
System.out.println("초를 입력>> ");
int sec = No2.nextInt();
/*int sec = Integer.parseInt(No2.nextLine()); */
System.out.println((sec / 60) + "분" + (sec%60)+ "초" + "입니다");
No2.close();
/*
/ 문제3. 초단위로 정수를 입력받고, "??시간??분??초" 형태로 출력해보세요.
int sec;
Scanner No3 = new Scanner(System.in);
System.out.println("초를 입력>> ");
sec = No3.nextInt();
System.out.println((sec/3600) + "시간" + ((sec%3600)/60)+"분" + (sec%60) +"초");
*/
/* 문제4. 최소 화폐 매수 구하기
금액을 입력받으면, 최소한의 화폐매수를 구해주는 프로그램
콘솔예시)
금액입력 : 67800 <- 사용자가 입력
5만원 : 1장
1만원 : 1장
5천원 : 1장
1천원 : 2장
5백원 : 1개
1백원 : 3개
Scanner No4 = new Scanner(System.in);
System.out.println("금액을 입력하세요");
int money = Integer.parseInt(No4.nextLine());
System.out.println("5만원 : " + (money / 50000) + "장");
System.out.println("1만원 : " + (money % 50000/10000) + "장");
System.out.println("5천원 : " + (money % 10000/5000) + "장");
System.out.println("1천원 : " + (money % 5000/1000) + "장");
System.out.println("5백원 : " + (money % 1000/500) + "장");
System.out.println("1천원 : " + (money % 500/100) + "장");
*/
}
}
package day03;
public class Test24 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 비교 연산자 : < <= > >= == !=
int a = 10;
int b = 5;
int c = a + b ;
boolean d = a != b;
System.out.println(d);
// 논리 연산자 : && ||
// %% : and
// a && b : a, b 둘다 참이여야 함
// || : or
// a || b : a, b 둘중 하나라도 참이면 참
boolean result = a >= b || a > b && b > 0; // && 부분을 먼저 연산함 result = a >= b || (a > b && b > 0)
System.out.println(result);
// 삼항 연산자
// true / false의 결과식 ? 참일때 결과값 : 거짓일때 결과값;
// a = 10 , b = 5
System.out.println(a < b ? a : b);
int res = a > b ? a : b ;
char resCh = a > b ? 'O' : 'X' ;
}
}
package day03;
public class Test25 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// int a = 10;
//System.out.println(a = a +10);
//System.out.println(a);
// 복합 대입 연산자 : += -= *= /= %=
int a = 10;
System.out.println(a);
a = a + 1; // a += 1; // a++; 같은 말임
System.out.println(a);
a += 1;
System.out.println(a);
a -= 10; // a = a - 10; 동일함
a *= 3; // a = a * 3
System.out.println(a);
a /= 3; // a = a / 3 ;
a %= 3; // a = a % 3;
int b = 10;
int c = 20;
boolean d = b < c ;
System.out.println(!d); // ! : (not 연산자) true / false 값을 반전 시키는 연산자
}
}
package day03;
import java.util.Scanner;
public class Test26 {
public static void main(String[] args) {
/*
int a = 20;
if(a>10) {
System.out.println("a는 10보다 크다");
System.out.println("a는 10보다 크다");
System.out.println("a는 10보다 크다");
System.out.println("a는 10보다 크다");
}
// a - 10 하고 10이랑 비교
// 연산자 우선순위에 따라 산술연산 먼저 계산됨
if(a- 10 < 10) {
System.out.println("안녕하세요");
}
int score = 50;
if (score >= 60) {
System.out.println("합격입니다");
}
if (score< 60) {
System.out.println("불합격입니다");
}
if (score >= 60) {
System.out.println("합격입니다");
}else {
System.out.println("불합격 입니다");
System.out.println(score>= 60? "합격" : "불합격");
}
*/
//문제 : 점수하나를 입력받고
// 90점 이상이면 "수" 80점 이상이면 "우"
// 70점 이상이면 " 미" 그 이하는 "재시험" 출력
Scanner exam = new Scanner(System.in);
System.out.println("점수를 입력하세요 >>");
//String a = exam.nextLine();
//int point = Integer.parseInt(a);
// => int point = Integer.parseInt(sc.nextLine());
int point = Integer.parseInt(exam.nextLine());
if(point >= 90) {
System.out.println("수");
}else if(point>=80) {
System.out.println("우");
}else if(point>=70) {
System.out.println("미");
}else {
System.out.println("재시험");
}
/* ///if(score > 100{
System.out.println("점수가 이상해요");
}else {
if(score >= 90) {
System.out.println("수");
} else if (score >= 80) {
System.out.println("우");
} else {
System.out.println("재시험");
}
*/
exam.close();
}
}
package day03;
import java.util.Scanner;
public class Test27 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//* 연산자 문제*
// 문제1. 정수 두개를 입력 받고, 몫과 나머지를 출력하세요.
// 문제2. 일(day)수 입력받고, 몇개월 몇일인지 출력해보세요.
// 단, 한달은 30일로 고정
// 문제3. 점수를 3개를 입력받고, 총점과 평균을 구하여 촐력해보세요.
//*if문 문제*
// 문제4. 숫자하나를 입력받고, "음수"인지 "양수"인주 "0"인지 출력해보세요.
// 문제5. 1~99 사이 숫자를 입력받고. "짝수" 인지 "홀수"인지 출력해보세요.
// 문제6. 정수 3개를 입력받고, 3개의 숫자중 가장 큰 수를 출력하세요.
/* 문제 1번
Scanner sc = new Scanner(System.in);
int num1 , num2 ;
System.out.println("값 1을 입력하세요>>");
num1 = sc.nextInt();
System.out.println("값 2을 입력하세요>>");
num2 = sc.nextInt();
System.out.println("몫은" + (num1/num2) + "입니다");
System.out.println("나머지는" + (num1%num2) + "입니다");
*/
/* 문제 2번
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요 >>");
int day = sc.nextInt();
System.out.println((day/30)+"개월"+(day%30)+"일 입니다.");
*/
/*
Scanner sc = new Scanner(System.in);
int num1 , num2 , num3;
System.out.println("값 1을 입력하세요>>");
num1 = sc.nextInt();
System.out.println("값 2을 입력하세요>>");
num2 = sc.nextInt();
System.out.println("값 3을 입력하세요>>");
num3 = sc.nextInt();
System.out.println("총점은 "+ (num1+num2+num3)+"이고" + "평균은"+((num1+num2+num3)/3)+"입니다");
*/
//*if문 문제*
// 문제4. 숫자하나를 입력받고, "음수"인지 "양수"인지 "0"인지 출력해보세요.
// 문제5. 1~99 사이 숫자를 입력받고. "짝수" 인지 "홀수"인지 출력해보세요.
// 문제6. 정수 3개를 입력받고, 3개의 숫자중 가장 큰 수를 출력하세요.
/*
Scanner sc = new Scanner(System.in);
System.out.println("숫자 하나를 입력하세요>>");
int num1 = sc.nextInt();
if(num1 > 0) {
System.out.println("양수");
}else if(num1 < 0){
System.out.println("음수");
}else if(num1 == 0){
System.out.println("0");
}
*/
/*
Scanner sc = new Scanner(System.in) ;
System.out.println("1 ~ 99 숫자하나를 입력하세요 >>");
int num1 = sc.nextInt();
if(num1 > 0 && num1 < 100){
if(num1%2==0) {
System.out.println("짝수입니다");
} else {
System.out.println("홀수입니다");
}
}else {
System.out.println("1~99 사이의 숫자가 아닙니다");
}
*/
/*
Scanner sc = new Scanner(System.in);
//int num1 , num2 , num3;
System.out.println("정수 1값을 입력하세요");
int num1 = sc.nextInt();
System.out.println("정수 2값을 입력하세요");
int num2 = sc.nextInt();
System.out.println("정수 3값을 입력하세요");
int num3 = sc.nextInt();
if(num1 > num2) {
if (num1>num3) {
System.out.println(num1);
}else {
System.out.println(num3);
}
}
else {
if (num2>num3) {
System.out.println(num2);
}
else {
System.out.println(num3);
}
}
/*
* if((num1>num2)&&(num1>num3)) {
System.out.println("정수 1값이 가장 큰값입니다.");
}else if((num1>num2)&&(num1<num3)) {
System.out.println("정수 3값이 가장 큰값입니다.");
}else if((num1<num2)&&(num1>num3)) {
System.out.println("정수 2값이 가장 큰값입니다.");
}else if((num1<num2)&&(num1<num3)) {
System.out.println("정수 3값이 가장 큰값입니다.");
}
*/
/* 문제7. 2차원 평면에서 직사각형은
왼쪽 상단 모서리와 오른쪽 하단 모서리 두점으로 표현한다.
(100,100) 과 (200, 200) 의 두점으로 이루어진 사각형이 있을때,
정수 x, y 값을 입력받고 점(x, y)가 이 직사각형안에
있는지 판단하는 프로그램을 작성하세요.
*/
Scanner sc = new Scanner(System.in);
int x, y;
System.out.println("x값을 입력하세요");
x = sc.nextInt();
System.out.println("y값을 입력하세요");
y = sc.nextInt();
//boolean result = ((x > 100 && x < 200) && ( y > 100 && y < 200));
//if((200 > x > 100 ) && (200 > y > 100)); {
//if(result==true)
if((x >= 100 && x <= 200) && ( y >= 100 && y <= 200)){
System.out.println("사각형 안에 존재합니다");
}else {
System.out.println("존재하지않습니다");
}
sc.close();
}
}
'P-Language > [Java]' 카테고리의 다른 글
[Java] 6 - 다차원 배열 (0) | 2022.06.03 |
---|---|
[Java] 5 - 배열 (0) | 2022.06.03 |
[Java] 4 - 조건문(switch), 반복문 (0) | 2022.06.03 |
[Java] 2 - 변수와 입,출력문 (0) | 2022.06.03 |
[Java] 1 - 환경 변수와 자바의 기본 (0) | 2022.06.03 |