변수와 기본적인 개념

jeongwoo·2022년 6월 13일
0

Java

목록 보기
2/2

변수

Variable(변수) : 하나의 값을 저장할 수 있는 기억공간으로, 변하는 데이터의 집합이다.

Data type(변수타입) : 기본타입과 클래스타입으로 구분된다.

변수 기본 타입 8가지

  • 1byte = 8bit

  • 정수형 데이터타입인 byte, short, int, long는 크기별로 나뉜다, 즉 데이터처리 양이 다르다.

  • 실수형 데이터타입인 float과 double도 크기별로 나뉜다.

  • 문자형 데이터타입인 char을 제외한 모든 타입들 맨 앞엔 S(sign)bit가 필요하다.(논리형타입 boolean도 제외)


cf) sign에서 0일 경우 양수, 1일 경우 음수

cf) charset에서 a는 97, A는 65, 문자 0은 48이다.

  • 기본타입인 char타입은 문자 하나만 담을 수 있지만 클래스타입인 String타입은 문자열을 다룰 수 있다.

cf) 우선 기본타입 8가지와 클래스 타입 중 하나인 String타입까지 알고있자.

cf) 클래스 타입은 4바이트이다.

  • int타입과 float타입은 같은 4바이트크기지만 float타입이 더 많은 데이터를 표시할 수 있다.
    • why? float타입은 데이터를 직접 넣는 방식이 아닌 e변수와 m변수에 넣는 방식이기때문이다.

변수 선언 방법

  • 두 코드는 같은 코딩이다,

  • 전자를 나쁜코드, 후자를 좋은 코드라고 한다. 둘의 차이점은 가독성! 그러니 후자를 쓰자!

  • 변수 안에는 데이터(값) 하나만 저장 가능하다.

  • int타입의 score라는 (지역)변수에는 1이 할당된 후 2가 할당되었다. score변수에 1은 존재하지않는다.

    • why? 변수 안에는 데이터 하나만 저장가능하기 때문에 덮어씌워진다.

변수 기본값과 초기화

main method

public static void main(String[] args) {}
  • main : method들을 갖고 있는 원소의 집합이다.

  • {} : block, 집합을 나타냄.

    • ex) A = {1, 2, 3}

즉, {}안에 있는 명령문을 원소로 가지는 집합A를 main이라고 하겠다는 뜻이다.

API 사용법

API(Application Programming Interface)
: 공개되어있어서 앱을 프로그래밍할 때 가져다 쓸 수 있는 것을 말한다.


cf) method = 함수 = function
    ex) y=2x+1, x값을 parameter(매개변수)라 하고 y값을 return값이라고 한다.

출력

  • println()
int score = 100; 

//고객이 정한 마땅한 초기값이 없을 경우 기본값으로, 있다면 그 값으로 초기화(할당)한다.

System.out.println(100);

//println() 메소드에 parameter로 100(상수)을 값으로 넣었다.

System.out.println(score);

//파라미터에 데이터(객체)나 변수를 써도 된다.

System.out.println(100+1); //101

//수식(expression)도 가능하다. VM은 수식을 계산하고 println에 전달한다.

System.out.println(Math.random());

//random() 메소드는 실행할 때마다 랜덤값(0이상 1미만의 더블타입 값)을 출력해준다.

//method를 call했다고 한다, 즉 Math클래스 안에 있는 random() 메소드를 호출한 것이다.

▶ parameter로 상수, 변수, 수식, 호출문 모두 가능하다.

  • print()
System.out.print(200);

System.out.print(300); //두 줄 실행결과 : 200300

//println과 print의 차이 : 줄바꿈이다, 즉 print() 메소드는 200300으로 줄이 바뀌지 않을 채 출력된다.

System.out.print("\n"); //print() 메소드를 이용한 줄바꿈

//\n은 엔터를 나타내는 문자다. 우리는 못보지만 엔터를 칠 때 \n이라는 문자가 입력되고 있다.

System.out.print(400);
  • printf()
//printf() 메소드에서 f는 format의 약자로 포멧을 지정할 수 있다.

System.out.printf("%b, %c, %d, %f, %s", true, 'a', 10, 1.15, "hello")

//%는 printf() 메소드 만든 사람이 쓰라고 지정한 것. API 알고지금에 왜를 달지말자.

//순서대로 boolean, char, decimal, float, String으로 printf() 메소드에서 정수형 타입은 %d를 사용한다.

//char타입에는 ''를 String타입에는 ""를 양끝에 써준다.

//'a'는 complier가 97로 읽는다. cf) 'A'는 65, 문자'0'은 48

System.out.printf("%b, %c, %d, %f, %s",  true, 'a', 10, 1.15, "hello");

//true, a, 10, 1.150000, hello

System.out.print("\n");

System.out.printf("%.1f", 1.15);  //1.2

//%f는 소수점 자리를 지정할 수 있다.

//%.1f일 경우 소수점 첫번째 자리까지만 출력된다.

System.out.printf("%5b%5c", true, 'a');  // true,    a

//자리수 조절이 가능하다. // -를 붙일 경우 왼쪽정렬이 된다.

System.out.printf("%b, %c, %d, %f, %s\n", true, 'a', 10, 1.15, "hello");

//형식 중 엔터문자를 넣어서 줄바꿈을 할 수도 있다.

System.out.printf("%5b,%-5c,%d,%5.2f,%5s", true, 'a', 10, 1.15, "ear");

// true,a    ,10, 1.15,  ear

String name = "최한석";

int age = 22;

System.out.printf("\n%s은 %d살입니다.", name, age); //최한석은 22살입니다.

System.out.printf("\n%s은 %d살입니다.", "한아름", 12); //한아름은 12살입니다.

System.out.println();//그냥 줄바꾸기 위한 한 줄.

System.out.println(name + "은 " + age + "살입니다.");

//여기서 +는 더하기 연산자가 아니라 붙이기연산자(concat operator)다.

//피연산자 중 하나라도 String타입이 있으면 +는 붙이기연산자(concat operator)가 된다.

//모두 숫자일 경우 더하기 연산자다.

입력

#########################



cf) 용어정리

  • 초기화: 다른 쓰레기값이 들어가지 않게 기본값을 할당한다.

    • ex) int A ; 가 아닌 int A = 0 ; 으로 쓸 것!
  • Operator(연산자): "="는 연산자 중 하나인 assign operator(할당연산자)이다.

  • ex) int score = 1;

  • 할당연산자 오른쪽의 값(1)을 할당연산자 왼쪽(int타입 score변수)에 복사해서 할당하겠단 의미이다.

  • cf) 연산자와 데이터가 같이 있으면 데이터를 먼저 처리한다.

  • cf) command = statement = script : 모두 코딩을 일컫는 용어(관점의 차이)

  • command 상에서 ";"는 마침표 역할을 한다.

  • cf) programming = coding + algorithm

  • cf) code smell : 가독성 좋은 코드는 좋은 냄새, 나쁜 코드는 악취가 난다고 한다.

  • Comment(주석)

    • "//"를 치고 설명을 쓴다.
    • 컴파일러가 읽지 않는다.
    • 주석을 여러줄 쓰려면 시작부분에 "/*"를 끝부분엔 "*/"를 써준다.
  • Complie Error : Complier가 에러를 표시하는 것으로 코드에 빨간줄로 표시된다.

  • Runtime Error : VM이 에러를 표시하는 것으로 Console창에 에러를 표시한다.

  • Error : 물리적으로 앱 작동하지 않는 것을 의미한다.

  • Bug : 앱은 작동하지만 알고리즘대로 작동하지 않는 것을 의미한다.

cf) 이클립스에서 Class파일을 만들때 Class명은 대문자로 시작해야한다(관례).

0개의 댓글