Java 문법
23년 이전 글/java

Java 문법

해당 글은 프로그래머스 자바 강의를 보고 작성 되었습니다.

 

 

주석

구현 주석

  • 행단위 주석 ( // )
  • 블럭단위 주석 ( /* 코드 */)

문서화 주석

  • /** 문서에 포함할 내용 */
  • 문서화 주석은 클래스, 인터페이스 그리고 멤버 당 하나씩 가질 수 있으며, 선언 바로 전 작성
  • 문서화 주석 예
import java.io.*;

/**
* <h1>Add Two Numbers!</h1>
* The AddNum program implements an application that
* simply adds two given integer numbers and Prints
* the output on the screen.
* <p>
* <b>Note:</b> Giving proper comments in your program makes it more
* user friendly and it is assumed as a high quality code.
*
* @author  Zara Ali
* @version 1.0
* @since   2014-03-31
*/
public class AddNum {
   /**
   * This method is used to add two integers. This is
   * a the simplest form of a class method, just to
   * show the usage of various javadoc Tags.
   * @param numA This is the first paramter to addNum method
   * @param numB  This is the second parameter to addNum method
   * @return int This returns sum of numA and numB.
   */
   public int addNum(int numA, int numB) {
      return numA + numB;
   }

   /**
   * This is the main method which makes use of addNum method.
   * @param args Unused.
   * @return Nothing.
   * @exception IOException On input error.
   * @see IOException
   */
   public static void main(String args[]) throws IOException
   {

      AddNum obj = new AddNum();
      int sum = obj.addNum(10, 20);

      System.out.println("Sum of 10 and 20 is :" + sum);
   }
}

 

변수

타입 변수이름;

  • int count; (정수 값을 담을 수 있는 count라는 이름의 변수 선언)
  • double average; (실수 값을 담을 수 있는 average 라는 변수 선언)

명명규칙

  • 변수의 이름을 정할 때 자바 언어에서 정해놓은 규칙

식별자(identifier)는 클래스, 메소드, 변수 등 다양한 대상에 대해 이름이 붙여지는 경우, 그 이름을 뜻함

 

Java 식별자 명명 규칙

  • 하나 이상의 글자로 이루어져야 함
  • 첫 번째 글자는 문자 이거나 '$' , '_'이어야 함
  • 두번째 이후의 글자는 숫자, 문자, '$', '_' 이어야 함
  • '$', '_' 이외의 특수문자 사용 불가능
  • 길이 제한이 없음
  • 키워드는 식별자로 사용할 수 없음
  • 상수 값을 표현하는 단어 true, false, null은 식별자로 사용할 수 없음

 

변수 명명 관례

  • 첫 번째 문자가 소문자인 명사로 정함
  • 여러 단어로 구성된 이름의 경우 두번째 단어부터 첫글자를 대문자로 함
  • '_'을 쓰지 않음

규칙을 지키지 않으면 컴파일시 에러가 발생함

관례는 지키지 않아도 컴파일 에러가 발생하지 않지만, 약속이기 때문에 지키는게 좋음

 

상수

한번 값을 저장하면 다시 값을 바꿀 수 없음

 

상수의 선언

final 상수타입 상수명;

  • final int J;

 

상수의 사용

상수명 = 값;

  • J = 10; (J에는 1번만 값을 저장할 수 있음)

 

상수 명명 관례

  • 대문자로만 구성된 명사로 정함
  • 여러 단어로 구성된 이름의 경우 단어 사이에 '_'을 써서 구분함

 

상수를 사용해야 하는 경우

  • 값이 변하면 위험한 경우
  • 값만 봤을 때 무엇을 의미하는지 쉽게 파악할 수 없는 값에도 수치를 사용하기보다 상수를 사용

 

기본형 타입

기본형 타입은 가장 기본이 되는 데이터 타입으로 정수형, 실수형, 문자형, 불린형

 

논리형

논리형은 크기가 1byte이고 true와 false 중에 한 가지 값을 가질 수 있음

 

문자형

문자형은 char로 2byte크기를 가지며 작은 따음표를 이용하여 한 글자를 표현할 수 있음

 

정수형

  • 정수형은 정수를 표현하는 데이터 타입인데 표현할 수 있는 정수의 범위에 따라서 다양하게 제공됨
  • 정수형에서 가장 자주 사용하는 int는 4바이트
  • long형은 8byte크기를 가지며, int 보다 더 큰 범위의 정수를 표현하고 싶을 때 사용

 

실수형

  • 실수형은 float와 double형이 있음
  • float은 4바이트, double은 8바이트로 double은 float보다 더 큰 범위의 실수를 표현할 수 있음

 

리터럴

  • 컴퓨터 과학 분야에서 리터럴이란, 소스 코드의 고정된 값을 대표하는 용어
  • 리터럴은 일종의 값이며, true, false, 10, 11.1, a 등 이런 값 자체를 리터럴이라고 함

 

기본형 타입의 사용 방법

  • boolean isFun = true;
  • char c = 'f';
  • int x = 59;
  • long big = 3456789L; (값을 적을때는 뒤에 소문자 l이나 대문자 L을 적어야 함)
  • float f = 32.5f (float에 값을 대입할 때는 실수 뒤에 소문자 f나 대문자 F를 붙여야 함)
  • double d = 23.34;

 

기본형 타입변환

형변환이란, 변수 또는 리터럴의 타입을 다른 타입으로 변환하는 것

 

묵시적 형변환

크기가 작은 타입을 크기가 큰 타입으로 바꿀 때 묵시적으로 형을 바꾸어 준다

int x = 50000;
long y = x;

 

명시적 형변환

크기가 더 큰 타입을 작은 타입으로 바꿀 때에는 명시적으로 변환 해주어야 한다.

long x = 50000;
//int y = xx; (이렇게 수행하면 컴파일러 오류 발생함)
int y = (int) x;

 

산술연산자

부호(+, -), 증감(++, --), +,-,*,/,%

연산식 ** x = y + z;**

  • y와 z를 더한 값을 x에 대입한다는 것을 의미
  • =과 + 는 연산자, = 은 대입연산자 이고,  + 산술연산자
  • y와 z는 피연산자
  • x = y + z는 연산식
  • 부호를 결정하는 부호연산자
  • 산술 연산을 할 수 있는 산술연산자
  • 1씩 증가하거나 감소 시키는 증감연산자
  • 피 연산자가 1개인 연산자는 단항연산자

부호 연산자와, 증감 연산자는 단항연산자 임

 

//부호 연산자 
    int i1 = -5;
    int i2 = +i1;
    int i3 = -i1;

//증감 연산자 
int i4 = ++i3;
int i5 = i3++;
int i6 = --i3;
int i7 = i3--;


//피연산자 하나로 연산할 수 없는 연산자, 이항 연산자
int i = 5;
int j = 2; 


//2개의 변수 이용한 산술 연산
System.out.println(i +  j);
System.out.println(i -  j);
System.out.println(i *  j);
System.out.println(i /  j);  
System.out.println(i %  j);

 

비교연산자

==, !=, <, >, <=, >= 비교 연산자의 결과는 boolean

int i = 10; // = 대입연산자 
int j = 10;    

// i 와 j 가 같은지 비교 하는 비교 연산자           
System.out.println(i == j ) 
System.out.println(i == j ) 
System.out.println(i != j );
System.out.println(i < j);
System.out.println( i <= j);
System.out.println(i > j);
System.out.println(i >= j);

 

복합 대입 연산자

i += 10; // i = i + 10;  과 같은 의미 

System.out.println(i);  
System.out.println(i -=5);
System.out.println(i);

 

연산자의 우선순위

  • 최우선 연산자( . , () , []  )
  • 단항연산자( ++, --, !, ~, +/- : 부정, bit변환 > 부호 > 증감)
  • 산술연산자( * , / , % , + , - , shift ) 시프트 연산자 ( >>, <<, >>> ) 
  • 비교연산자( >, <, >=, <=, ==, != )
  • 비트연산자( %, |, ~ )
  • 논리연산자( &&, ||, ! )
  • 삼항연산자 (조건식) ?:
  • 대입연산자 =, *=, /=, %=, +=, -=
int a = 5;
int b = 10;
int c = 5
System.out.println(  a - b * c );
//결과는 -45, 곱셈우선

 int a = 5; 
System.out.println(++a - 5); 
//결과는 1, 단항 연산자이면서 전위 연산자인 ++ 먼저 연산

int a = 5; 
System.out.println(a++ - 5); 
//결과는 0, 단항 연산자이면서 후위 연산자인 ++는 나중에 연산
System.out.println(a); 
//결과는 6 ++연산 이후의 값

 

if 조건문

 

if 문

조건식이 true 일 경우 실행문 실행, if (조건식) 다음의 {} 를 생략할 수 있지만 생략할 경우 if문에 포함되는 실행문은 한줄만 포함할 수 있음

if(조건식) {
	실행문;
	실행문;
}

if - else 문

조건식이 true일 경우 if 블록의 실행문, false 일 경우 else 블록의 실행문이 실행

if(조건식){
	실행문;
    실행문;
}else{
	실행문;
}

if - else if - else 문

  • 처음 if문의 조건식의 조건문이 true일 경우 if문의 블록이 실행, false일 경우 다음 조건식의 결과에 따라 실행블록이 달라짐
  • else if 문의 제한 수는 없지만 조건문이 많을수록 실행속도가 느려짐
  • 마지막 else 블록은 샐략해도 됨
if(조건식){
	실행문;
    실행문;
}else if(조건식){
	실행문;
}else{
	실행문;
}

 

논리연산자

논리연산자는 논리곱(&&, &), 논리합(||, |), 배타적 논리합, 논리부정(!) 연산을 수행함. 논리 연산자의 피연산자는 불린 타입만 사용할 수 있고, 결과도 불린값

boolean b1 = true;
boolean b2 = false;
boolean b3 = true;

 

//논리곱 ( &&, & )
System.out.println(b1 && b2); -> b2가 false 이므로 결과는 false
Syste.out.println(b1 && b3); -> b1, b3 모두 true 이므로 결과 true

//논리합 (||, |)
System.out.println(b1 || b2); -> b1이 true이므로 결과 true

//배타적 논리합 ( ^ )
System.out.println(b1 ^ b2); -> b1 true, b2는 false로 서로 다르므로 결과 true
System.out.println(b1 ^ b3); -> b1 true, b3 true로 같으므로 결과 false

//논리부정 (!)
System.out.println(!b1); -> b1이 true 이므로 결과는 false
System.out.println(!b2); -> b2가 false 이므로 결과는 true

 

삼항연산자

조건식 ? 피연산자1 : 피연산자2

조건식의 연산결과가 true 이면, 결과는 피연산자 1이고, false이면 피연산자 2

int b1 = (5>4) ? 50 : 40;
//조건식이 true 이므로 b1은 50
  • 피연산자1, 피연산자2 에는 주로 값이 오지만, 연산식을 넣을 수도 있음
  • if문으로도 사용 가능하기 때문에 익숙하지 않을 경우 if문으로..
int b2 = 0;
if(5 > 4){
	b2 = 50;
}else{
	b2 = 40;
}

 

switch문

어떤 변수의 값에 따라서 문장을 실행할 수 있도록 하는 제어문

switch(변수){
	case 값1 :
    	실행문;
        break;
    case 값2 :
    	실행문;
        break;
    default;
}

//value의 값이 1일 경우 1을 출력하고, 2일 경우 2를 출력, 3일 경우 3, 그외에는 그 외 숫자 출력

int value = 1;

switch(value){
	case 1:
    	System.out.println("1");
        break;
    case 2:
    	System.out.println("2");
        break;
    case 3:
    	System.out.println("3");
        break;
    default :
    	System.out.println("그 외의  숫자");
}

//break를 하지 않을 경우
case 1:
	System.out.println("1");
case 2:
	System.out.println("2");
case 3:
	System.out.println("3");
default :
	System.out.println("그 외의 숫자");

//break를 제거하면 switch 문장을 빠져나가는게 아니라 1,2,3 그외숫자가 연속해서 실행됨

 

while문

조건문의 실행 결과가 true일 동안 반복해서 실행

while(조건문){
	실행문;
}

//10번 반복하며 0부터 9까지 출력
int i = 0;
while(i < 10){
	System.out.println(i);
    i++;
}

//1부터 100까지 합을 while문으로 구현
public class WhileExam2 {
	public static void main(String[] args){
    	int total = 0;
        int i = 1;
        while(i <= 100){
        	total = total + i;
            i++;
        }
    }
}

 

do while문

while문의 경우 조건이 만족하지 않는다면 한번도 반복하지 않지만, do while문은 무조건 한번은 실행되는 바복문

do{
	실행문;
}while(조건문);

import java.util Scanner;

public class DoWhileExam {
	
    public static void main(String[] args) {
    	int value = 0;
        
        //Scanner는 java.util 패키지에 있는 클래스로 키보드로부터 값을 입력받을 때 유용
        Scanner scan = new Scanner(System.in);
        // 키보드로부터 값을 입력받을 수 있는 Scanner 객체 생성
        
        do{
        	value = scan.nextInt(); // Scanner 클래스를 이용 키보드 숫자값 입력받기
            System.out.println("입력받은 수 : " + value);
        }while(value != 10); // 입력받은 값이 10이 아닌 경우 계속
        
        System.out.println("반복문 종료");
    }
}

 

for문

for 반복문은 변수초기화, 조건식, 증감식이 모두 한줄에 있음

  • 초기화식은 최초 한번 수행
  • 조건식을 수행해서 수행결과가 false라면 for 반복문을 나감
  • 수행 결과가 true라면 실행문 수행
  • 증감식을 수행
  • 2번부터 4번까지 반복 수행
for(초기화식; 조건식; 증감식){
	실행문;
    실행문;
}

//for문으로 1부터 100까지 합 구하기
int total = 0;
for (int i = 1;, i <= 100; i++){
	total = total + i
}
System.out.println(total);

//for문으로 1부터 100까지 짝수의 합 구하기
public class ForExam {
	
    public static void main(String[] args) {
    	int total = 0;
        for(int i = 1; i <= 100; i++){
        	if(i % 2 != 0){
            	continue;
            }
            total = total + i;
        }
        System.out.println(total)
    }
}

 

반응형

'23년 이전 글 > java' 카테고리의 다른 글

Java 배열  (0) 2022.07.07
Java, 개발환경 구성  (0) 2022.07.06