ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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);

     

     

     

    }

    }

    <출력값>

     

     

Designed by Tistory.