명품 자바

ChoRong0824·2022년 9월 6일
2

Java

목록 보기
1/31
post-thumbnail

2단원, 자바 기본 프로그래밍

  • 식별자 : 클래스, 변수, 상수 메소드 등을 붙이는 이름
  • 특수문자('_' , '$')만 사용 가능하며, 나머지 특수문자는 식별자로 사용할 수 없다.
  • Java는 대소문자를 구별, 길이 제한이 없다.

타입

(정수)
byte -> short -> int -> long
(실수)
float -> double

  • 클래스의 첫 번째 문자는 대문자 사용

  • 상수는 대문자로 표기

  • 레퍼런스는 뭔가 하나가 있고 뭘 가리키면 뭔가가 있는 느낌이다. (나의 생각)
    그림으로 표현하면, ( {adress} ㅡ> ㅇ ) 이런 식으로 가리키는 느낌

  • 자바에서 문자열과 기본타입의 +연산이 실행되면 문자열로 바뀐다.
    (이유 : 자바에서는 문자열이 기본 타입에 속해 있지 않기 때문이다)

  • 변수 : 데이터를 저장하는 공간 ( 변수 선언 : int price; )

  • 리터럴 : 값 그자체

  • long 타입으로 지정하려면 숫자 뒤에 L 또는 l을 붙이면 된다.

  • 숫자 뒤에 f나 F를 붙이면 float, D나 d를 붙이면 double 타입으로 강제 변환.

  • null은 기본 타입에 사용될 수 없고 객체 레퍼런스에 대입된다.
    int n = null; // 오류, 기본 타입에 null 값 지정 안됨
    String str = null; // 정상

  • Scanner 클래스는 사용자가 입력하는 키 값을 공백 문자 ('', '\t', '\n')을 기준으로 분리하여 토큰 단위로 읽는다.

  • String nextLine() : 엔터치기 전까지 모든 것을 가져와 라는 느낌이며, 공백이 낀 문자열을 입력받기 위해서도 사용합니다.

  • String next()

  • 산술 연산자는 +, -, *, /(나누기), %(나머지)
    %연산자는 홀,짝 구분 및 배수 확인에 자주 활용된다.

    // 간단한 시간을 나타내는 code
    	int time = sc.nextInt(); 
        int second = time/60; 
        int minute = (time/60)%60; 
        int hour = (time /60)/60;
    

증감자

  1. 전위 연산자
    ++a; a를 증가하고 증가 전의 값 반환
  2. 후위 연산자
    a++; a를 증가하고 증가된 값 반환
  • 대입 연산
    a+= b; // a= a+b의 연산이 이루어져, a== a+b, b==b

  • 비교/논리 연산
    !a a가 true이면 false, false이면 true
    a || b a와 b의 OR 연산, a와 b 모두 false인 경우에만 false
    a && b a와 b의 AND 연산, a와 b true인 경우에만 true
    a ^ b a와 b의 XOR 연산, a와 b가 서로 다를 떄 true
    condition ? opr2 : opr3
    조건문(condition)이 true면 opr2, false면 opr3

switch 문

swith (식) {
  	case 값1:
   	 실행문장 1;
	 break;
   case 값 2:
   	...
   dafault:
   	실행문장 n:
  }

실습문제

  1. 	Scanner sc = new Scanner(System.in);
           final int dollar = 1100;
           System.out.print("원화를 입력하세요(단위 원) >>");
           double won = sc.nextDouble();
           System.out.println(won+"원은 $"+won/dollar+"입니다.");

  2. //방법 1
       	   Scanner sc = new Scanner(System.in);
           System.out.print("2자리수 정수 입력(10~99) >>");
           int n = sc.nextInt();
    
           if(n>10&&n<100) {
               if (n / 10 == n % 10) {
                   System.out.println("Yes! 10의 자리와 1의 자리가 같습니다.");
               }else System.out.println("다릅니다.");
               
     //방법 2
           Scanner sc = new Scanner(System.in);
           System.out.print("2자리수 정수 입력(10~99) >>");
           int n = sc.nextInt();
           int a= n/10;
           int b= n%10;
           if (n > 10 && n < 100) {
               if (a == b) {
                   System.out.println("1와 10의 자릿 수가 같습니다.");
               } else System.out.println("다릅니다.");
           }
    1.     System.out.print(" 금액을 입력하시오 >>");
          int a, b, c, d, e, f, g;
          int n = sc.nextInt();
          a = n / 50000;
          n = n - (a * 50000);
          b = n / 10000;
          n = n - (b * 10000);
          c = n / 5000;
          n = n - (c * 5000);
          d = n / 1000;
          n = n - (d * 1000);
          e = n / 100;
          n = n - (e * 100);
          f = n / 10;
          n = n - (f * 10);
          g = n;
          System.out.println("오만원권 "+a);
          System.out.println("만원권 "+b);
          System.out.println("오천권 "+c);
          System.out.println("천권 "+d);
          System.out.println("백권 "+e);
          System.out.println("십권 "+f);
          System.out.println("일권 "+g);
      }
    2. 	Scanner sc = new Scanner(System.in);
          System.out.print("정수 3개 입력>>");
          int a = sc.nextInt();
          int b = sc.nextInt();
          int c = sc.nextInt();
      
          if ((a > b && a < c) || (b > a && a > c)) {
              System.out.println("중간 값은" + a);
          } else if ((b > a && b < c) || (b > c && b < a)) {
              System.out.println("중간 값은 " + b);
          } else if ((c > a && c < b)||(c<a && a>b)) {
              System.out.println("중간 값은" + c);
          }

      5번

        Scanner sc = new Scanner(System.in);
       System.out.print("정수 3개 입력>>");
       int a = sc.nextInt();
       int b = sc.nextInt();
       int c = sc.nextInt();
       if (a + b > c || a + c > b || b + c > a) {
           System.out.println("삼각형이 됩니다.");
       }else System.out.println("삼각형 x");
      	}
      

    6번

    	   Scanner sc = new Scanner(System.in);
           System.out.print("1~99 정수 입력>>");
           int num = sc.nextInt();
           int a, b;
           a = num / 10; // 십의 자리
           b = num % 10; // 일의 자리
           if (a == 3 || a == 6 || a == 9) {
               if (b == 3 || b == 6 || b == 9){
                   System.out.println("박수짝짝");
               }else System.out.println("박수짝");
           } else if (b == 3 || b == 6 || b == 9) {
               System.out.println("박수짝");
           }
profile
컴퓨터공학과에 재학중이며, 백엔드를 지향하고 있습니다. 많이 부족하지만 열심히 노력해서 실력을 갈고 닦겠습니다. 부족하고 틀린 부분이 있을 수도 있지만 이쁘게 봐주시면 감사하겠습니다. 틀린 부분은 댓글 남겨주시면 제가 따로 학습 및 자료를 찾아봐서 제 것으로 만들도록 하겠습니다. 귀중한 시간 방문해주셔서 감사합니다.

0개의 댓글