-
2023년 05월 25일 공부 내용 정리 ( java~ 퀴즈 정리하긔)국비 교육 내용 정리 2023. 5. 25. 11:17
* tip
1.잡코리아를 보고 it 의 흐름을 파악하라~!
2. vue ? 요즘 HOT함~
3.★ java 와 spring 은 중요함
4.★ oracle(mysql) 을 이용한 db 관리 해야함!
=> 포트폴리오에 올려야함
* 수업 내용
1. 정수다 하믄 long 실수다 하믄 float 사용해라~! (복잡하게 생각하지 말기~)
2. 기억하랏!
- int 이하의 연산자를 만나면 int다
- int보다 크면 long,double,float 이면 int가 되는게 아니라 큰 타입으로 바뀝니다!
* 실습 1(증감연산자)
<코드값 >
package ch03.op;
public class OpEx01 {
/* 증감연산자
* ++ : 숫자의 값을 1 증가
* -- : 숫자의 값을 1 감소
*/
public static void main(String[] args) {
int x=5,y=5;
x++; // 후위형 x= x+1
y--;
System.out.println("x="+x+",y="+y);
x=y=5;
++x; //전위형
--y;
System.out.println("x="+x+",y="+y);
}
}
<출력값>
x=6,y=4
x=6,y=4
<코드값 >
package ch03.op;
public class OpEx02 {
public static void main(String[] args) {
int x=5,y=0;
y = x ++; //1. y=x, y=5, 2. x++; x=6
System.out.println("1.x="+x+",y="+y); // x=6,y=5
y = ++ x; //1. ++x: x=7, 2. y=x, y=7
System.out.println("2.x="+x+",y="+y); // x=7 , y=7
System.out.println("3.x=" + x++); // 1. "x=7" 출력, x++, x=8;
System.out.println("4.x=" + ++x); // 1. ++x, x=9, 2."x=9" 출력
x= y--;
System.out.println("5.x"+x+",y"+y); //x=7,y=6
x= --y;
System.out.println("6.x="+x+",y="+y); // x=5,y=5
}
}
}
}
<출력값>
1.x=6,y=5
2.x=7,y=7
3.x=7
4.x=9
5.x7,y6
6.x=5,y=5
<코드값 >
package ch03.op;
public class OpEx03 {
public static void main(String[] args) {
System.out.println(true);
System.out.println("!true="+!true);
System.out.println("!false="+!false);
int x=100;
System.out.println("(x < 200)=" + (x < 200));
System.out.println("!(x < 200)=" + !(x < 200));
System.out.println("!( 5 % 2 ==0)" + !(5 % 2 ==0));
System.out.println("( 5 % 2 !=0)=" + (5 % 2 !=0));
}
}
<출력값>
true
!true=false
!false=true
(x < 200)=true
!(x < 200)=false
!( 5 % 2 ==0)true
( 5 % 2 !=0)=true
<코드값 >
package ch03.op;
public class OpEx04 {
public static void main(String[] args) {
int x = -10;
System.out.println("+x=" + +x); //-10
System.out.println("-x=" + -x); //10
x = 10;
System.out.println("+x=" + +x); // 10
System.out.println("-x=" + -x); //-10
}
}
<출력값>
+x=-10
-x=10
+x=10
-x=-10
<코드값 >
package ch03.op;
/* 산술 연산
* / : 나누기 연산자
* int = int이하/int이하
* % : 나머지 연산자
* 나머지연산의 결과값의 부호는 피젯수 (나누어 지는수) 의 부호와 같다.
*/
public class OpEx05 {
public static void main(String[] args) {
System.out.println(10/8); //1
System.out.println(10/-8); //-1
System.out.println(-10/8); //-1
System.out.println(-10/-8);//1
System.out.println(10%8); //2
System.out.println(10%-8); //2
System.out.println(-10%8);//-2
System.out.println(-10%-8);//-2
}
}
<출력값>
1
-1
-1
1
2
2
-2
-2
<코드값 >
package ch03.op;
public class OpEx06 {
public static void main(String[] args) {
System.out.println("6 & 3 = " + (6 & 3));
/* 비트연산자 : &(and), \(or), ^(XOR), ~(not) :
* 6: 0110
* 3: 0011
* ---------
* &(and) 0010 : 2 */
System.out.println("6 | 3 = " + (6 | 3));
/* 6: 0110
* 3: 0011
* ---------
* |(or) : 0111 : 7*/
System.out.println("6 ^ 3 = " + (6 ^ 3));
/* 같으면 0, 다르면 1
* 6: 0110
* 3: 0011
* ----------
* ^(xor) : 0101 : 5
*/
System.out.println("~10 = " + ~10); //-11
/*
* 10: 00001010
* -----------------------
* ~(not) : 11110101 : ?
*/
}
}
<출력값>
6 & 3 = 2
6 | 3 = 7
6 ^ 3 = 5
~10 = -11
<코드값 >
package ch03.op;
public class OpEx07 {
/* shift 연산자: 비트이동 연산자
* << n : 왼쪽으로 n비트만큼 이동. 오른쪽의 n비트 0으로 채움.
* >> n : 오른쪽으로 n비트만큼 이동. 왼쪽의 n비트 부호비트 채움
* >>>n : 오른쪽으로 n비트만큼 이동. 왼쪽의 n비트 0으로 채움.
*/
public static void main(String[] args) {
System.out.println("8 << 2 : " + (8 << 2)); //32
/* 8 : 00001000
*<<2 :0010000 : 32*/
System.out.println(" 8 >> 2: "+ (8 >> 2 ));//2
/* 8 : 00001000
* >>2 : 00000010 : 2 */
System.out.println("-8 << 2 :" + (-8 << 2)); //-32
/* -8 : 11111000
* <<2: 11100000 : -32 */
System.out.println("-8 >> 2:"+ (-8 >> 2)); //-2
/* -8 : 11111000
* >> 2: 11111110 : -2 */
System.out.println("-8 >>> 2 :"+ (-8 >>> 2)); // 1073741822
/* -8 : 11111000
* >>>2 : 00111110
*/
}
}
<출력값>
8 << 2 : 32
8 >> 2: 2
-8 << 2 :-32
-8 >> 2:-2
-8 >>> 2 :1073741822
<코드값 >
package ch03.op;
public class OpEx08 {
public static void main(String[] args) {
int num = 100;
System.out.println(num);
num += 10; //num = num + 10;
System.out.println(num);
num /= 10; // num = num /10;
System.out.println(num);
num *= 2+3; //num = num * (2+3); //더하기가 여산자 순위가 높다
System.out.println(num);
byte b =1;
b *= 2; //b=b*2
b= (byte) (b*2);
System.out.println(b); //4
b *= 2;
System.out.println(b); //8
b *= 2;
System.out.println(b); //16
}
}
<출력값>
100
110
11
55
4
8
16
<코드값>
package ch03.op;
import java.util.Scanner;
/*
* 조건연산자(삼항 연산자)
* (조건식) ?참 : 거짓
*
* 조건연산자는 조건문으로 변경이 가능함.
*/
public class OpEx09 {
public static void main(String[] args) {
System.out.println("점수를 입력하세요");
Scanner scan = new Scanner(System.in);
int score = scan.nextInt();
System.out.println(score);
String result = (score >=60)?"합격":"불합격";
System.out.println(result);
}
}
<출력값>
점수를 입력하세요
80 ( 출력 화면에 점수를 누르면 결과값이 출력이 됨!)
80
합격
<코드값>
package ch03.op;
import java.util.Scanner;
/*
* 조건연산자(삼항 연산자)
* (조건식) ?참 : 거짓
*
* 조건연산자는 조건문으로 변경이 가능함.
*/
public class OpEx09 {
public static void main(String[] args) {
System.out.println("점수를 입력하세요");
Scanner scan = new Scanner(System.in);
int score = scan.nextInt();
System.out.println(score);
String result = (score >=60)?"합격":"불합격";
System.out.println(score + "점은" + result +"입니다");
System.out.println(score + "점은"
+ ((score % 2 ==0 ) ? "짝수" : "홀수")+ "입니다");
// 짝수,홀수, 0인지 출력하기 -11%2 -> -1 -홀수는 0
result = (score % 2 == 1) ? "홀수" : (score > 0) ? "짝수" : "0";
System.out.println(score + "점은"+ result + "입니다.");
}
}
<출력값>
점수를 입력하세요
71 ( 출력 화면에 점수를 누르면 결과값이 출력이 됨!)
71
71점은합격입니다
71점은홀수입니다
71점은홀수입니다.
<코드값>
package ch03.op;
public class OpEx10 {
public static void main(String[] args) {
long a = 1000000 * 1000000;
long b = 1000000 * 1000000L;
System.out.println("a:"+a);
System.out.println("b:"+b);
}
}
<출력값>
a:-727379968
=> 이 연산의 결과는 int 범위를 초과하여 오버플로우가 발생하게 됩니다. 그 후에 이 값을 long 타입의 변수 a에 저장하게 되는데, 이미 오버플로우가 발생한 시점에서 값은 잘못된 결과가 됩니다.
b:1000000000000
<코드값>
package ch03.op;
public class OpEx11 {
public static void main(String[] args) {
char c1 = 'a';
char c2 = (char) (c1+1);
int i = (c1+1);
char c3 = 'a'+1;
int i1 = 100;
byte b = 100;
System.out.println(c2 + ":"+(int)c2);
}
}
<출력값>
b:98
< quiz1 >
package ch03.op;
import java.util.Scanner;
/*
* 12345 초가 몇시간 몇분 몇초인지 출력하기
*
* 결과
*
* 3시 25분 45초
*
*/
public class ExOp01 {
public static void main(String[] args) {
int num = 12345;
//키보드에서 입력받기
System.out.println("계산할 초를 입력하세요");
Scanner scan = new Scanner(System.in);
int hours = num /3600;
int minutes = (num/60)% 60;
int seconds = (num % 60);
System.out.println(hours +"시"+ minutes +"분"+ seconds+"초"+"입니다");
}
}
< answer 1 >
계산할 초를 입력하세요
3시25분45초입니다
<quiz2 <me>>
package ch03.op;
import java.util.Scanner;
public class Exop02 {
/* 화면에서 3자리 정수를 입력받아 100 자리 미만을 버리고 출력하기
* [결과]
* 세자리 정수를 입력하세요
* 321
* 300
*
* 세자리 정수를 입력하세요
* 199
* 100
* */
public static void main(String[] args) {
int num;
System.out.println("세자리 정수를 입력하세요");
Scanner scan = new Scanner(System.in);
num = scan.nextInt();
if (num >= 100) {
int result = num / 100 * 100; // 100 자리 미만 버리기
System.out.println(result);
} else {
System.out.println("출력하지 않습니다.");
}
}
}
세자리 정수를 입력하세요
99
출력하지 않습니다.
<quiz3 <me>>
package ch03.op;
import java.util.Scanner;
/* 화면에서 금액을 입력받아 500,100,50,10,1 원 동전으로 바꾸기
* 필요한 동전의 갯수를 출력하기
* [결과]
* 금액을 입력하세요.
* 5641
* 500원 : 11개
* 100원 1개
* 50원:0개
* 10원:4개
* 1원:1개
*
*/
public class ExOp03 {
public static void main(String[] args) {
int coin;
System.out.println("금액을 입력하세요.");
Scanner scan = new Scanner(System.in);
coin = scan.nextInt();
System.out.println("500원: " + coin / 500 + "개");
coin %= 500;
System.out.println("100원: " + coin / 100 + "개");
coin %= 100;
System.out.println("50원: " + coin / 50 + "개");
coin %= 50;
System.out.println("10원: " + coin / 10 + "개");
coin %= 10;
System.out.println("1원: " + coin + "개");
}
}
<quiz4 <me>>
package ch03.op;
import java.util.Scanner;
/* 숫자를 입력받아서 양수인 경우는 양수로, 음수인 경우는 음수로, 0인 경우는 0 출력하기.
* */
public class EXop04 {
public static void main(String[] args) {
System.out.println("금액을 입력하세요");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
System.out.println((num>0)?"앙수":(num<0)?"음수":"0");
}
}
(quiz5)
package ch03.op;
import java.util.Scanner;
/* 한개의 문자를 입력받아서 소문자인 경우는 대문자로 변경하여 출력하기
* 소문자가 아닌 경우는 "소문자아님" 출력하기
* */
public class Exop05 {
public static void main(String[] args) {
System.out.println("한개의 문자를 입력하세요");
Scanner scan = new Scanner(System.in);
String str = scan.next(); // 문자열로 입력받기. "A"
char ch = str.charAt(0); //문자열 중 첫번째 문자 'A'
System.out.println(ch + ":" + (int)ch);
System.out.println((ch >= 97 && ch <= 122)?(char)(ch-32):"소문자아님");
//a: 97, z:122
}
}
실습2 ( for, while ,do while문)
<코드값>
package ch04.controll;
import java.util.Scanner;
public class IfEx01 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("점수를 입력하세요");
int score = scan.nextInt(); //80
if(score >= 60) System.out.println("합격을 축하드립니다.");
else System.out.println("다음에 오세요.");
//90이상이면 "A학점" 80이상이면 "B학점" 70이상이면 "C학점"
// 60이상이면 "D학점" 그외는 "F학점" 출력하기
if(score>=90) {System.out.println("A학점 입니다.");
} else if(score >= 80) {System.out.println("B학점 입니다.");
} else if(score >= 70) {System.out.println("C학점 입니다.");
} else if(score >= 60) {System.out.println("D학점 입니다.");
} else {System.out.println("F학점입니다.");
}
}//main. 프로그램 종료
}
<출력값>
점수를 입력하세요
33
다음에 오세요.
F학점입니다.
<코드값>
package ch04.controll;
public class LoopEx01 {
public static void main(String[] args) {
System.out.println(1 + " ");
System.out.println(2 + " ");
System.out.println(3 + " ");
System.out.println(4 + " ");
System.out.println(5);
System.out.println("for 구문으로 1 ~ 5 까지 출력하기");
for (int i =1; i<= 5; i++) {
System.out.println(i + " ");
}
System.out.println();
int i = 1;
System.out.println("while 구문으로 1~5까지 출력하기");
while(i <= 5) {
System.out.println(i + " ");
i++;
}
i=1;
System.out.println();
System.out.println("do while 구문으로 1 ~ 5까지 출력하기");
do {
System.out.println(i + "");
i++;
} while (i <= 5);
}
}
<출력값>
1
2
3
4
5
for 구문으로 1 ~ 5 까지 출력하기
1
2
3
4
5
while 구문으로 1~5까지 출력하기
1
2
3
4
5
do while 구문으로 1 ~ 5까지 출력하기
1
2
3
4
5
<퀴즈>
<코드값>
package ch04.controll;
import java.util.Scanner;
/*
* 사과를 사과 상자에 담기로 한다. 1개의 상자에 10개의 사과를 담을 수 있다.
* 필요한 사과 상자의 갯수를 출력하기
* [결과]
* 사과의 갯수를 입력하세요
* 22
* 필요한 상자의 갯수 : 3
*
* 사과의 갯수를 입력하세요
* 30
* 필요한 상자의 갯수 : 3
*/
public class Quiz03 {
public static void main(String[] args) {
System.out.println("사과의 갯수를 입력하세요");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int box = num/10;
if(num % 10 != 0) { // 만약 num을 10으로 나눈 나머지가 0이 아니라면, 즉, 사과 개수가 10의 배수가 아니라면 box 값을 1 증가시킵니다. 이는 나머지 사과를 담기 위해 추가로 한 개의 상자가 필요함을 의미합니다.
box++;
}
System.out.println("필요한 상자의 갯수:" + box);
}
}
<출력값>
사과의 갯수를 입력하세요
22
필요한 상자의 갯수:3
<코드값>
package ch04.controll;
import java.util.Scanner;
public class Quiz02 {
/*
* 조건 연산자를 이용하기
* 점수를 입력받아서 90이상이면 "A학점" 80이상이면 "B학점" 70이상이면 "C학점"
* 60이상이면 "D학점" 그
* 외는 "F학점" 출력하기
*/
public class Exam7 {
public static void main(String[] args) {
System.out.println("점수를 입력하세요");
Scanner scan = new Scanner(System.in);
int score = scan.nextInt();
if (score >= 90) {System.out.println("A학점");}
else if(score >= 80) {System.out.println("B학점");}
else if (score >= 70) {System.out.println("C학점");}
else if (score >= 60) {System.out.println("D학점");}
else {System.out.println("F학점");}
}
}
}
<출력값>
<코드값>
package ch04.controll;
import java.util.Scanner;
/*
* 10부터 99사이의 두자리 자연수를 입력받아 입력수보다 크거나 같은 가장 작은 10의 배수를 구하기
* 10의배수에 입력수를 뺀 값을 출력하기 :
* [결과]
* 10부터 99까지의 수를 입력하세요
* 24
* 30 - 24 = 6
*
* 10부터 99까지의 수를 입력하세요
* 20
* 20 - 20 = 0
*
* 10부터 99까지의 수를 입력하세요
* 77
* 80 - 77 = 3
*/
public class Quiz01 {
public static void main(String[] args) {
System.out.println("10부터 99까지의 두자리수를 입력하세요");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int num10 = (num%10==0)?num:((num/10+1)*10);
System.out.println(num10-num);
}
}
<출력값>
'국비 교육 내용 정리' 카테고리의 다른 글
2023년 05월 30일 공부 내용 정리 ( java) (0) 2023.05.30 2023년 05월 26일 공부 내용 정리 ( java~ 퀴즈 정리하긔) (0) 2023.05.26 2023년 05월 24일 공부 내용 정리 ( java~) (0) 2023.05.24 2023년 05월 23일 공부 내용 정리 (MYSQL,json) (0) 2023.05.23 2023년 05월 22일 수업 내용 (0) 2023.05.22