1차원 배열

타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간

 

1차원 배열의 선언 방법

int[] ref = new int[5]; //길이가 5인 int 1차원 배열의 생성문

 

배열 저장구조

배열은 참조 변수로 Stack 영역에 할당되며 배열 공간의 주소를 저장

배열 공간의 주소를 이용해 인덱스를 참조하는 방식으로 값을 처리한다.

 

배열선언문에 대한 결과

//참조변수의 이름 뒤에 배열표시도 가능
int[] ar = new int[3]; //조금 더 선호하는 방법
int ar[] = new int[3];

//배열의 참조변수와 인스턴스의 선언도 분리 가능!
public static void main(String[] args){
	int[] ref;
    ref = new int[5];
    .........
}

 

배열의 활용, 값의 저장과 참조

 

int[] ar = new int[3];

ar[0] = 7;    //값의 저장: 첫 번째 요소
ar[1] = 8;    //값의 저장: 두 번째 요소
ar[2] = 9;	  //값의 저장: 세 번째 요소

int num = ar[0] + ar[1] + ar[2]; //값의 참조

 

배열 초기화

//기본 자료형 배열은 모든 요소 0으로 초기화
	int[] ar = new int[10];
    
//String과 같은 객체배열은 모든 요소 null로 초기화
	String[] ar = new string[10];
//배열 생성
	int[] arr = new int[3];
    
//배열 생성 및 초기화1
	int[] arr = new int[] {1, 2, 3};
    
//배열 생성 및 초기화2
	int[] arr = {1, 2, 3};

깊은 복사

새로운 배열 객체를 생성하여 기존 배열의 데이터를 복사하는 것

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[5];
for(int i = 0; i < arr.length; i++){
	arr2[i] = arr1[i];
}

System.arraycopy(arr1, 0, arr2, 0, arr1.length);

arr2 = Arrays.copyOf(arr1, arr1.length);
arr2 = arr1.clone();

 

'CS > JAVA' 카테고리의 다른 글

메서드의 개념  (0) 2024.01.18
2차원 배열  (0) 2024.01.18
출력 메소드  (0) 2024.01.17
자료형의 종류  (1) 2024.01.17
자바 단축키  (0) 2024.01.17

Scanner


키보드로 입력되는 정수, 실수, 문자열을 처리하는 클래스

 

import 작성

Scanner를 사용하기 위해서 외부로부터 가져옴

java, util, Scanner 클래스를 이용

scanner 클래스 내부의 메소드를 호출하여 입력받습니다.

import java.util.Scanner;

Scanner 생성

scanner 이름 = new scanner(System.in);
ex) scammer sc = new Scanner (System.in);

Scanner sc = new Scanner(System.in);

키보드 입력 값 받기

sc.next(): 사용자가 입력한 값 중 공백이 있을 경우 이전까지의 값만 읽어옴

정수: sc.nextInt();
실수: sc.nextFloat(); 또는 sc.nextDouble();
문자열: sc.next(); 또는 sc.nextLine();

// next()는 띄어쓰기 입력불가, 줄 구분까지 저장하지 않음
// nextLine()은 문자열에 띄어쓰기 가능, 줄 구분까지 저장
System.out.print("아무거나 입력하세요 : ");
String st1= sc.next();
String st2= sc.next();
String st3= sc.next();

System.out.println(st1);
System.out.println(st2);
System.out.println(st3);

출력결과:
아무거나 입력하세요 :

 

출력 메소드


System.out.print()

()안의 변수, 문자, 숫자, 논리 값을 모니터에 출력해주는 메소드

System.out.print("안녕하세요");
System.out.print(123);
System.out.print(변수명);

출력결과:
안녕하세요
123
변수명

 

System.out.println()

print문과 동일하게 출력은 해주지만 출력 후 자동으로 출력창에 줄바꿈을 해주는 메소드

System.out.println("안녕하세요");
System.out.println(123);
System.out.println(변수명);

int n1 = 10;
int n2 = 20;
System.out.println("n1의 값은: "+ 0n1 +"n2의 값은 :" "+n2);

출력결과:
안녕하세요
1234
변수명
n1의 값은: 10 n2의 값은: 20

System.out.printf()

정해져 있는 형식에 맞춰서 그 형식에 맞는 값을 줄바꿈 하지 않고 출력

%d 정수형 %o 8진수 %x 16진수
%c 문자 %s 문자열    
%f 실수 %e 지수형태표현 %g 대입 값 그대로
%A 16진수 실수        
%b 논리형        
public class Main {
	public static void main (String[] args) {
		
		int year = 2;
		String area = "서울";
		
		//기본적으로는 줄바꿈이 안되지만 %n을 사용하면 줄이 바뀐다.
		System.out.printf("줄을 바꿀수%n");
		System.out.printf("있다.%n");
		
		//year값이 %d에 담긴다.
		System.out.printf("방을 %d년 계약했다.%n", year);
		//area값이 %s에 담긴다.
		System.out.printf("나는 %s에 살고있다. %n", area);
		}
	}
    
    출력결과:
    줄을 바꿀 수
    있다.
    방을 2년 계약했다.
    나는 서울에 살고있다.

'CS > JAVA' 카테고리의 다른 글

2차원 배열  (0) 2024.01.18
1차원 배열  (0) 2024.01.17
자료형의 종류  (1) 2024.01.17
자바 단축키  (0) 2024.01.17
반복문 (for, while)  (0) 2024.01.17

Boolean 논리형 변수


참 또는 거짓일 수 있는 논리 값을 나타내는 데이터 유형

Boolean 자료형의 값에는 참/거짓 딱 2가지만이 있습니다.

 

boolean isSunny = true;
boolean isWarm = true;

boolean isperfectDay = isSunny && isWarm;
boolean is Beverage = isSunny || isWarm;
boolean isNotSunny = !isSunny;
public class OperatorExample {
	public static void main(String[] args){
    	int charcode = 'A';
        if ((charCode >=65) & (charCode <= 90)) {
        	System.out.println("대문자군요.");}
        if ((charCode >=97) && (charCode <= 122)) {
        	System.out.println("소문자군요.");}
        if ((charCode >=48) && (charCode <= 57)) {
        	System.out.println("소문자군요.");}
        
        int value = 6;
        if ((value % 2 == 0) | (value % 3 == 0)) {
        	system.out.println("2 또는 3의 배수군요.");}
       	if ((value % 2 == 0) || (value % 3 == 0)){
        	System.out.println("2 또는 3의 배수군요");}
            }
       }

 

/* 논리 자료형
*boolean(참과 거짓) 이라는 자료형으로 isTrue라는 이름의 변수를 선언
* boolean isTrue;
* true(참과 false(거짓)을 저장하는 자료형
*/

boolean b1 = 10 > 5; // true
boolean b2 = 20 == 10; //false

System.out.println("논리 자료형");
System.out.println(b1);
System.out.println(b2);

 

Char 문자형 변수


char은 character의 약자로 정수, 문자 1개를 저장하는 자료형입니다.

//char 자료형 + 자료이름 + 값
char character = 'c';
/*
* 문자 자료형
* char(2)
* 문자 하나를 담을 수 있는 자료형
* 자바는 2바이트의 유니코드로 표현한다
*/

char ch1 = '죄';
char ch2 = '지';
char ch3 = '원';

System.out.println("문자 자료형");
System.out.println(ch1);
System.out.println(ch2);
System.out.println(ch3);
System.out.println(ch1+ch2+ch3);

출력결과: 최지원

String 문자형 변수


String은 int 와 char과 달리 기본형이 아닌 참조형 변수로 분류된다.

자료형 키워드 첫글자가 대문자이다.

int age = 35;
String name = "홍길동";
/*문자열
* string(객체)
* 문자열 같은 경우 할당해야할 메모리크기가 너무 가변적이므로 원시타입이 아닌 객체로 변수를 만들어 준다
*
*/

String str1 = "병아리";
String str2 = new String("병아리"); //객체생성방식으로 String 변수를 선언
String str3 = "병아리"+"삐약삐약";
String str4 = new String("병아리"+"삐약삐약");
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);

//다른 자료형 + 문자열 = 문자열
String str5 = 20 + "병아리" +5 + "살" + "삐약삐약";
System.out.println(str5);

 

byte, short, int, long 자료형 변수


byte, int, long, long long은 정수(숫자)를 나타낼때 사용됩니다.

/* 정수 자료형
* byte(1) short(2) int(4) long(8)
* 모두 정수를 저장하는 자료형이지만 각 자료형마다 표현할 수 있는 수의 범위가 다름
*
byte by = 10;
short sh = 10;
int in = 10;
long lo = 10;
*/
System.out.println("정수 자료형");
System.out.println(by + "," + sh + "," +in+","+lo);
/* int라는 자료형으로 num라는 이름의 변수를 선언
* int num;
*
* System.out.println(6+3);
*
* num1, num2 라는 int변수 선언
* int num1;
* int num20;
*
* num1에 10 num2에 20이라는 값을 할당
* num1 = 10;
* num2 = 20;
*
* num1에 있는 값과 num2에 있는 값을 더해서 출력
* System.out.println(num1+num2);
*/

데이트 저장 단위


저장 공간이 제한적이기 때문에 저장 크기에 대한 기준과 CPU가 데이터를 처리할 때 일정한 기준이 필요합니다. 

byte

정수 자료형 중에서도 가장 작은 범위를 가진 자료형.

short

byte 다음으로 작은 자료형. 

int

가장 표현적으로 쓰이는 정수형. 2^32개를 저장할 수 있음

long

long 형을 사용하면 int보다 더 큰 수를 할당할 수 있음

float, double 자료형 변수


실수를 표현하기 위한 자료형입니다. 

 

float


소수점 뒤에 f를 붙여 이 수는 소수임을 알리는 방식으로 소수를 표현합니다.

 

public class Main {
	public static void main(String[] args){
    floay number = 0.001f + 0.001f + 0.0001f;
    System.out.println(number);
    }
}

실행결과:
0.00210000002
/* float(실수)이라는 자료형으로 num2라는 이름의 변수를 선언
* float num2;
* 실수 자료형
* float(4) double (8)
* 모두 실수를 저장하는 자료형이지만 float보다 double이 더 정확한 수를 표현할 수 있다.
*/

float f1 = 4.24f;
double dou = 4.24;

System.out.println("실수 자료형");
System.out.println(f1+","+double);

 

double


double형은 float와는 다르게 f를 붙여주지 않아도 소수점을 표현할 수 있습니다.

이진수의 특성상 표현하지 못하는 손수가 존재해 계산 결과가 부정확합니다.

 

public class Main {
	public static void main(String[] args){
    double number = 0.01 + 0.001 + 0.0001;
    System.out.println(number);
    }
 }
 
 실행 결과:
 0.011099999999

이스케이프 시퀸스


화면상의 어떠한 상황 또는 상태를 표현하기 위해 약속한 문자.

 

문자열 내에서 백스페이스, 탭, 백슬래시, 작은 따옴표 등 코드로 사용되는 특수문자를

표현할 때 사용하는 방식

백스페이스 문자 \b 한 글자 지우기
탭 문자 \t 들여쓰기
백슬래시 문자 \\ 역슬래쉬 보여주기
작은따옴표 문자 \' 작은따옴표 보여주기
큰따옴표 문자 \" 큰따옴표 보여주기
개 행 문자 \n 줄바꿈
캐리지 리턴 문자 \r 현재 줄에서 제일 앞으로 보내기
유니코드 \u 유니코드 표시할 때 사용

 

 

public class SpecialCharEx {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println('\'');
		System.out.println("abc\t123\b456");
		System.out.println('\n');
		System.out.println("\"HelloWorld\"");
		System.out.println("\'HelloWorld\'\n");
		System.out.println("Hello\0World");
		System.out.println("c:\\");
		System.out.println("abcdef\b");
		System.out.println("서쪽\t동쪽");
		System.out.println("가나다\r라마");
		System.out.println("\uAC00, \uAC01, \uAC11");
	}
}​
출력 결과

'
abc 123456

"HelloWorld"
'HelloWorld'

Hello World
c:\
abcdef
서쪽   동쪽
가나다
라마
가, 각, 갑

변수의 초기화


변수를 선언하고 처음으로 값을 되돌리는 것

지역변수(메소드 안 변수)는 반드시 초기화 해야한다.

 

명시적 초기화


변수 선언과 동시에 초기화를 한다. 가장 기본적이고 간단한 초기화 방식이다.

간단하고 명료한 초기화 방법이지만 복잡한 코드엔 적합하지 않다.

Class Car {
	int door = 4; //기본형 변수의 초기화
    Engine e = new Engine(); //참조형 변수의 초기화
}

 

java 내에서 코드의 이름이 겹치면 안된다.

선언 후 초기화

int age;
age = 100;

선언과 동시에 초기화

int age = 100;

초기화 블럭


모든 생성자에서 공통으로 수행되어야 하는 코드에 활용하면 좋다.

 

클래스 초기화 블럭: 클래스변수의 복잡한 초기화에 사용된다. 인스턴스 초기화 블럭 앞에 static을 덧붙인다.

인스턴스 초기화 블럭: 인스턴스변수의 복잡한 초기화에 사용된다.

Class InitBlock {
	static { /* 클래스 초기화 블럭 */ }
    { /* 인스턴스 초기화 블럭 */ }
  } //초기화 블럭 내에서는 메서드처럼 조건문, 반복문, 예외처리구문이 가능하다.

클래스 초기화 블럭


클래스가 메모리에 처음 로딩될 때 한번만 수행된다.

인스턴스 초기화 블럭


생성자와 같이 인스턴스를 생성할 때 마다 수행된다. 생성자보다 인스턴스 초기화 블럭이 먼저 실행된다.

 

//인스턴스 초기화 블럭
{
	count++;
    serialNo = count;
}

//생성자
Car() {
	color = "White";
    gearType = "Auto";
}
Car(String color, String gearType){
	this.color = color;
    this.gearType = gearType;
}
public class SpecialCharEx {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println('\'');
		System.out.println("abc\t123\b456");
		System.out.println('\n');
		System.out.println("\"HelloWorld\"");
		System.out.println("\'HelloWorld\'\n");
		System.out.println("Hello\0World");
		System.out.println("c:\\");
		System.out.println("abcdef\b");
		System.out.println("서쪽\t동쪽");
		System.out.println("가나다\r라마");
		System.out.println("\uAC00, \uAC01, \uAC11");
	}
}​

 

자료형 변환 (boolean 제외)


int num1 = 50;
long num2 = 3147463647L;
System.out.println(num1 + num2);

 

두 피연산자의 자료형이 일치해야 동일한 방법을 적용하여 연산을 진행할 수 있습니다.

피연산자의 자료형이 일치하지 않을 때 형의 변환을 통해 일치를 시켜야 합니다.

/*컴퓨터의 값 처리 원칙

1. 같은 종류 자료형만 대입 가능
2. 같은 종류 자료형만 계산 가능
3. 계산의 결과도 같은 종류의 값이 나와야 함

이러한 원칙이 지켜지지 않은 경우에 형 변환이 필요합니다.
*/

자동 형 변환

1. 자료형의 크기가 큰 방향으로 형 변환이 일어납니다.

2. 자료형의 크기에 상관없이 정수 자료형보다 실수 자료형이 우선됩니다.

 

double num1 = 30;
System.out.println(59L + 34.5);

 

 

강제 형 변환

자동 형 변환 규칙에 부합하지는 않지만, 형 변환이 필요한 상황이면 값이 큰 자료형을 

범위가 작은 자료형으로 변환합니다. 강제 형변환 시 데이터 손실이 발생할 수 있습니다.

//ex1)
double pi = 3.1415;
int wholenumber = (int)pi;

//ex2)
long num1 = 3000000007L;
int num2 = (int)num1;

//ex3)
short num1 = 1;
short num2 = 2;
short num3 = (short)(num1 + num2;)
public static void main(String[] args) {
double pi = 3.1415;
int wholeNumber = (int)pi;

System.out.println(wholeNumber);

long num1 = 30000006L;
int num2 = (int)pi;
System.out.println(num1);
System.out.println(num2);

short num3 = 1;
short num4 = 2;
short num5 = (short)(num3 + num4);
}
}

출력결과:
3
30000006
3

'CS > JAVA' 카테고리의 다른 글

1차원 배열  (0) 2024.01.17
출력 메소드  (0) 2024.01.17
자바 단축키  (0) 2024.01.17
반복문 (for, while)  (0) 2024.01.17
조건문 (if, switch)  (0) 2024.01.15

이동

Ctrl + 객체클릭 변수나 클래스 등을 정의한 곳으로 이동
Ctrl + Shift + G 변수나 함수 등을 레퍼런스 하는 곳으로 이동
ALT + LEFT 이전 커서 위치로 이동
ALT + RIGHT 다음 커서 위치로 이동

찾기

Ctrl + Alt + G 전체 workspace에서 문자열 찾기
Ctrl + K 선택한 문자열을 파일 내에서 찾기
Ctrl + Shift + K 선택한 문자열을 파일 내에서 역순으로 찾기
Ctrl + Shift + L 코드 찾기
Ctrl + Shift + R 경로 찾

수정

Ctrl + N 새로운 파일 생성
Ctrl + Shift + P 새로운 패키지 생성
Ctrl + Shift + N 새로운 클래스 생성
Ctrl + D 한 줄 삭제
Ctrl + Shift + f4 열려있는 창 모두 닫기
Ctrl + L 원하는 라인으로 이동

주석

Ctrl + Shift + / 블록을 블록 주석으로 처리
Ctrl + Shift + \ 블록 주석 제거
Ctrl + Shift + / 한줄 주석 처리 또는 제거

자동화

Alt + Shift + R 변수나 클래스 등의 리팩토핑
Ctrl + Shift + O 자동으로 import
Ctrl + l 들여쓰기 자동 수정
Ctrl + Space 자동으로 입

구조 보기

Ctrl + T (또는 F4) 클래스 Hierarchy 보기
Ctrl + O 클래스 멤버 및 변수 보기

편집

Alt + Shift + A 상하 편집 모드로 전환
Ctrl + Shift + X 선택된 문자열을 대문자로 전환
Ctrl + Shift + Y 선택된 문자열을 소문자로 전환

리팩토링

Alt + Shift + S R Getter/Setter 자동 생성 창 열기
Ctrl + Shift + M Method로 추출
Ctrl + Shift + I Method를 인라인 하기
Alt + Shift + S O 기본 생성자 생성
Alt + Shift + S toString 오버라이드 생성

기타

Ctrl + W 현재 파일 닫기
Ctrl + Shift + W 열린 파일 모두 닫기
Ctrl + F11 최근 실행 파일 실행
Alt + Shift + X T Unit Test 실행
Ctrl + + / - 텍스트 에디터 폰트 크기 조절

 

'CS > JAVA' 카테고리의 다른 글

출력 메소드  (0) 2024.01.17
자료형의 종류  (1) 2024.01.17
반복문 (for, while)  (0) 2024.01.17
조건문 (if, switch)  (0) 2024.01.15
연산자의 종류  (0) 2024.01.15

반복문

프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을

반복해서 수행하도록 함

 

반복문의 종류

//for문

for(초기식; 조건식; 증감식)
	{
    	수행될 문장;
    }
    
//while문

while(조건식) {
	수행될 문장;
    [증감식 or 분기문];
}

 

for문


for 문은 초기식 조선식 증감식을 생략할 수 있다.

for(초기식; 조건식; 증감식) {
	수행될 문장;
 }
 
/*1회전: 초기식 확인 후 조건식 확인
 *	조건식이 true면 문장 수행
 *   조건식이 false면 수행하지 않음
 *   
 *  2회전: 증감식 연산 후 조건식 확인
 *	조건식이 true면 문장 수행
 *  조건식이 false면 수행하지 않음
 */
   
//  2회전 이상부터는 모두 2회전과 동일하고
//  조건식이 false가 나올 때까지 문장 수행

 

for 문 예시

for(int i = 1; i <= 10; i++) {
	System.out.println(i + "출력");
}

실행 결과:

1 출력
2 출력
...
9 출력
10 출력
/* ㉠. int i = 0; 
 * ㉡. i <3;
 * ㉢. System.out.println(...);
 * ㉣. i++
 *
 * 첫번째 루프의 흐름 [i=0]
 * ㉠ → ㉡ → ㉢ → ㉣
 *
 * 두번째 루프의 흐름 [i=1]
 * ㉡ → ㉢ → ㉣
 *
 * 세번째 루프의 흐름 [i=2]
 * ㉡ → ㉢ → ㉣
 *
 * 두번째 루프의 흐름 [i=3]
 * ㉢ i = 3 이므로 탈출
 */
 
 
for(int i = 0; i < 3; i++) {
	System.out.println(...);
}

 

중첩 반복문

/* for 문에 진입하면 수행될 문장 1을 먼저 수행하고
 * 두번째 for문에 진입하면 조건식2가 false가 될 때까지 문장 2를 수행
 * 나오면 수행될 문장 3을 수행하고
 * 조건식 1로 돌아와 true면 다시 반복
 */
 
for(초기값1; 조건식1; 증감식1){
	수행될 문장1;
    for(초기값2; 조건식2; 증감식2){
    	수행될 문장2;
    }
    수행될 문장3;
}
class ForInFor{
	public static void main(String[] args){
    	for(int i = 0; i <3; i++){ //바깥쪽 for문
        	System.out.println("------------");
            for(int j - 0; j < 3; j++) { //안쪽 for문
            	System.out.print("[" + i " + "," + j + "]");
                }
                System.out.print('\n');
                }
           	}
       }
 }

구구단 출력 예제

for(int i = 2; i < 10; i++) { // 2단부터 9단까지 진행을 위한 바깥쪽 for문
	for(int j = 1; j < 10; j++) // 1부터 9까지의 곱을 위한 안쪽 for문
    	System.out.println(i + " x " + j + " = " + (i *j));
    }
    
출력 결과:
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

while문

{}안에 조건을 벗어나게 할 연산(증감식,분기문)필요

/* 조건식이 true일 때 문장 수행
* 문장 수행이 끝나면 조건식
* 다시 확인 후 true 면 수행
* 조건식이 false가 될 때까지 수행
* 조건식이 false가 되면 반복문 종료
*/

while(조건식){
	수행될 문장;
    [증감식 or 분기문];
}

 

while문 예시

 int i = 1;
 while(i <= 10) {
 	System.out.println( i + "출력");
    i++;
}

출력결과:
1 출력
2 출력
...
9출력
10출력

 

do~while

 while과 do~while의 차이점

do~while은 조건문이 true가 아니더라도 무조건 한 번 이상 수행

{} 안에 조건을 벗어나게 할 연산(증감식,분기문) 필요

do {
	수행될 문장;
    [증감식 or 분기문];
 } while(조건식);
 
 // do 안의 내용 먼저 실행
 // 조건식 확인 후 true면 문장 수행
 // false면 종료
 // while 뒤에 ; 꼭 필요

do ~ while문 예시

int i = 1;
do {
	System.out.println(i + "출력");
    i++;
} while(i <= 10);

출력 결과:
1 출력
2 출력
...
9 출력
10 출력

 

분기문

break

반복문에서는 break문 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문

for(int i = 1;; i++){
	System.out.println(i + " 출력 " );
    if(i >= 10){
    	break;
    }
}

 

continue

반복문 내에서만 사용 가능하며

반복문 실행 시 contunue 아래 부분은 실행하지 않고 반복문을 다시 실행한다.

 

for문의 경우 증감식으로 이동, while(do~while)문의 경우 조건식으로 이동

전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용하다.

 

for(int i = 1; i <= 10; i++) {
	if(i % 2 == 0){
    	continue;
    }
    System.out.println(i + "출력");
 }

 

'CS > JAVA' 카테고리의 다른 글

자료형의 종류  (1) 2024.01.17
자바 단축키  (0) 2024.01.17
조건문 (if, switch)  (0) 2024.01.15
연산자의 종류  (0) 2024.01.15
변수의 개념  (0) 2024.01.15

조건문


프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 조건에 따라

다른 문장이 수행되도록 함

 

조건문의 종류

//if문
if(조건식1){
	수행될 문장;
} else if(조건식2) {
	수행될 문장;
} else if(조건식3) {
	수행될 문장;
} else {
	수행될 문장;
}

//switch문
switch(조건식){
case 값:
	수행될 문장;
    break;
case 값2:
	수행될 문장;
    break;
default:
	수행될 문장;
}

if문


 

(조건식) { 조건식의 결과 값이 true면 a안의 내용 실행 false면 실행하지 않음 }

//if문 예시
if(num > 0) {
	System.out.println("양수입니다.");
 }

 

if~else

//조건식의 결과 값이 true면 a안의 내용 실행 false면 b안의 내용 실행
if(조건식){ a }
} else { b 
}

//if~else문 예시
if(num % 2 == 0){
	System.out.println("짝수");
} else {
	System.out.println("홀수");
}

if ~ else if ~ else

/*
* 조건식 1의 결과 값이 true면 a안의 내용 실행
* 조건식 2의 결과 값이 true면 b안의 내용 실행
* 모두 false면 c안의 내용 실행
*
* if는 true, false와 상관 없이 조건절 실행
* if~else if~else는 조건문이 true면 이후 조건은 실행하지 않음
*/

if(조건식1) { a
} else if(조건식2){ b
} else { c
}

//if~else if~else문 예시

if(month == 1 || month == 2 || month == 12)
{ 
	season = "겨울";
} else if (month >= 3 && month <= 5) {
	season = "봄";
} else if (month >= 6 && month <= 8) {    
	season = "여름";
} else if (month >= 9 && month <= 11) {
	season = "가을";    
} else {
	season = "해당하는 계절이 없습니다."

 

if~else if~else 문과 if ~ else 문의 관계

//01
if(num < 0) {
	System.out.println("....");
 }
 else {
	if(num < 100)
    	System.out.println("...");
    else
    	System.out.println("...");
 
//02
if(num < 0)
	System.out.println("...");
else
	if(num < 100)
    	System.out.println("...");
    else
    	System.out.println("...");
        
//03
if(num < 0)
	System.out.println("...");
else if(num <100)
	System.out.println("...");
else
	System.out.println("...");

 

중첩 if

//중첩 if
if (조건식1) {
	if (조건식2) {
    	if (조건식3) {
        	수행될 문장;
        } else if (조건식4) {
        	수행될 문장;
        } else {
        	수행될 문장;
        }
    } else {
    	수행될 문장;
   	}
 } else if (조건식5) {
 	수행될 문장;
 } else {
 	수행될 문장;
}

//중첩 if문 예시
if (month == 1 || month == 2 || month == 12) {
	season = "겨울";
    if(temperature <= -15) {
    	season += " 한파 경보 ";
     } else if(temperature <= -12){
     	season += " 한파 주의보 ";
     }
 } else if (month >=3 && month <=5) {
 	season = "봄";
 } else if (month >=6 && month <=8) {
 	season = "여름";
    if(temperature >= 35){
    	season += " 폭염 경보 ";
    } else if(temperature >= 33){
    	season += " 폭염 주의보 ";
} else if (month >=9 && month <= 11) {
 	season = "가을";  
} else {
	season = "해당하는 계절이 없습니다.";

 

if ~ else문과 유사한 성격의 조건 연산자

//? = true or false
// : = true시 반환

조건 ? 수1 : 수2

ex1)
big = (num1 > num2) ? num1 : num2;

ex2)
diff = (num1 > num2) ? (num1 - num2) : (num2 - num1);

 

Switch문


조건식 하나로 많은 경우의 수를 처리할 때 사용하며 

이때 조건식의 결과는 정수 또는 문자, 문자열이다.

 

조건식의 결과값과 일치하는 case문으로 이동 default문은 일치하는 case 문이 없을 때 수행 (=else)

 

switch문의 기본 구성

//case와 default는 레이블
//실행 위치를 표시하는 용도로 사용될 뿐

switch(n){
case 1: /*n이 1이면 여기서부터 실행*/
	...
case 2: /*n이 1이면 여기서부터 실행*/
	...
case 3: /*n이 1이면 여기서부터 실행*/
	...
default: /*해당하는 case 없으면 여기서부터 실행*/
	...
}

 

switch문 + break문

//break문이 실행되면 switch문을 빠져나간다

switch(n){
case 1: /*case1 영역*/
	...
    break;
case 2: /*case1 영역*/
	...
    break;
case 3: /*case1 영역*/
	...
    break;
default: /*default 영역*/
	....

 

'CS > JAVA' 카테고리의 다른 글

자바 단축키  (0) 2024.01.17
반복문 (for, while)  (0) 2024.01.17
연산자의 종류  (0) 2024.01.15
변수의 개념  (0) 2024.01.15
프로그래밍 기초  (0) 2024.01.15

+ Recent posts