국비 교육 내용 정리

2023년 05월 25일 공부 내용 정리 ( java~ 퀴즈 정리하긔)

jinpark1992 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);

 

 

 

}

}

<출력값>

 

 

댓글수1