해당 글은 프로그래머스 자바 강의를 보고 작성 되었습니다.
주석
구현 주석
- 행단위 주석 ( // )
- 블럭단위 주석 ( /* 코드 */)
문서화 주석
- /** 문서에 포함할 내용 */
- 문서화 주석은 클래스, 인터페이스 그리고 멤버 당 하나씩 가질 수 있으며, 선언 바로 전 작성
- 문서화 주석 예
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 |