개념정리

[Java] 자료구조01 : 입출력, 변수, 배열, 반복문

낫띵온미 2023. 1. 9. 21:57

권오흠 교수님 2016 Java로 배우는 자료구조

▶ 강의자료

 

 

  • C에서의 소스코드 = Java에서 class
  • class의 이름은 대문자로 시작
  • class의 이름과 파일명이 일치해야함 -> refactor > rename 이용

 

 

출력

public class Hello {

	public static void main(String[] args) {
		System.out.println("Hello Java !!!");
	}

}
  • main(Strong[] args) : main method (C: main 함수)
  • C는 함수들의 집합, Java는 클래스의 집합
  • 클래스 : 함수들의 집합
  • ctrl + i : 들여쓰기
  • 각각의 클래스가 메인함수를 가지고 있어도 문제X

 

 

public class Code01 {
	
	static int num;

	public static void main(String[] args) {
		int anotherNum = 5;
		num = 2;
		
		System.out.println(num + anotherNum);
		System.out.println("Num: " + num);
		System.out.println("AnotherNum: " + anotherNum);

	}

}
  • 클래스 외부에는 아무것도 선언할 수 없음
  • 메서드 외부 선언: static 변수, 클래스 전체에서 사용 가능
  • 메서드 내부 선언: 메서드 내부에서만 사용 가능
  • 정수 + 정수 -> 덧셈연산
  • 문자열 + 정수 -> 정수를 문자열로 변환하여 출력
System.out.println("Sum: " + num + anotherNum);	//left associativity
  • 결과 : Sum: 25
  • 왼쪽부터 연산되기 때문에 문자열로 처리됨

 

 

변수의 타입

이름 설명
byte 정수
short 정수
int 정수
long 정수
float 소수
double 소수
char 문자 하나
boolean 참/거짓
  • 프리미티브 타입
String 문자열
  • 프리미티브 타입에 가까움

 

 

 

입력

import java.util.Scanner;

public class Code02 {

	public static void main(String[] args) {
		
		int number = 123;
		
		Scanner keyboard = new Scanner(System.in);	//keyboard(var)라는 이름의 스캐너 만듦
		
		System.out.print("Please enter an integer:");
		
		int input = keyboard.nextInt();		//표준입력으로 정수 입력받음
	
		if (input==number) {
			System.out.println("Numbers match! :-)");
		} else {
			SYstem.out.println("Numbers do not match! :-(");
		}
        
        	keyboard.close();
	}

}
  • #inlcude -> import
  • Source > Organize imports 이용

 

 

문자열 비교

package lesson01;
import java.util.Scanner;

class Code03 {
	public static void main(String [] args) {
		String str = "Hello";
		String input = null;
		
		Scanner kb = new Scanner(System.in);
		
		System.out.print("Please type a string: ");
		input = kb.next();		//scanf("%s")
        
		if(str.equals(input)) {
			System.out.println("Strings match! :-)");
		} else {
			System.out.println("Strings do not match! :-(");
		}
		
		kb.close();
	}
}
  • null : 빈 문자열로 초기화 (자바가 자동으로 해줌)
  • next() : 공백으로 단어 구분
  • equal 연산자는 프리미티브타입에서만 적용
  • 문자열1.equals( 문자열2 ) 함수 사용

 

import java.util.Scanner;

class Code04 {
	
	public static void main(String [] args) {
		
		String name = null;
		int age;
		String gender;
		
		Scanner keyboard = new Scanner(System.in);
		
		System.out.print("Please type your name and your age and your gender: ");
		
		name = keyboard.next();
		age = keyboard.nextInt();
		gender = keyboard.next();
		
		if (gender.equals("male"))
			System.out.println(name + ", you're" + age + " years old man.");
		
		else if (gender.equals("female"))
			System.out.println(name + ", you're"  + age + " years old woman.");
		
		else
			System.out.println("Hmm... interesting.");
	}
}

 

 

 

배열

public class Code05 {

	public static void main(String[] args) {
		
		//in C, int grades[5];
		
		// declare the array
		int [] grades;
		grades = new int[5];
		
		double [] array = new double [100];
		
		char [] word;
		word = new char [20];
		
		// assign some values to the array
		grades[0] = 100;
		grades[1] = 76;
		grades[2] = 92;
		grades[3] = 95;
		grades[4] = 14;
		
		// print out each value
		System.out.println(grades[0]);
		System.out.println(grades[1]);
		System.out.println(grades[2]);
		System.out.println(grades[3]);
		System.out.println(grades[4]);
	}
}

 

  • 배열을 선언 -> 배열 생성
  • 그외에는 C와 동일

 

public class Code06 {

	public static void main(String[] args) {
		int [] grades;
		grades = new int[5];
		
		grades[0] = 100;
		grades[1] = 76;
		grades[2] = 92;
		grades[3] = 95;
		grades[4] = 14;
		
		for(int i = 0; i < grades.length; i++) {
		System.out.println("Grade "+(i+1)+": "+grades[i]);
		}
	}
}
  • grades.length : 배열의 길이
  • for문 : C언어와 완전히 동일

 

public class Code07 {

	public static void main(String[] args) {
    	int n = 100;
		int[] grades = new int[n];

		grades[0] = 100;
		grades[1] = 76;
		grades[2] = 92;
		grades[3] = 95;
		grades[4] = 14;

		int i = 0;
		while(i<grades.length) {
			System.out.println("Grade "+(i+1)+": "+grades[i]);
			i++;
		}
	}
}
  • C에서는 variable length array 지원X
  • 자바는 변수를 배열의 크기로 사용 가능 (최신 C언어도)

 

 

배열