-
출처 : inflearn
-
클래스 이름 바꾸기 : src > class > 오른쪽 버튼 클릭 > Refactor
1. 변수 선언하기
// 클래스 밖에 변수 선언은 불가 public class Hello { // 함수 밖에 변수 선언 : static static int num; public static void main(String [] args) { // 함수 안에 변수 선언 : static 선언 안해도 됨 int anotherNum = 5; num = 2; // print out some information // 숫자 + 숫자 System.out.println(num + anotherNum); // 문자 + 숫자 System.out.println("num: " + num); System.out.println("anotherNum: " + anotherNum); } }

2. 변수에 값 저장하기
(1) 변수 타입 : Int
import java.util.Scanner; class Code2 { public static void main(String [] args) { int number = 123; // keyboard라는 스캐너를 만든다. System.in : 키보드 Scanner keyboard = new Scanner(System.in); System.out.print("Please enter an integer: "); // keyboard로부터 정수를 입력 받아 변수 input에 저장한다. int input = keyboard.nextInt(); if(input == number) { System.out.println("Numbers match! :-)"); } else { System.out.println("Numbers do not match! :-("); } // scanner 다 썼으면 닫아준다. keyboard.close(); } }
(2) 변수 타입 : String
import java.util.Scanner; class Code3 { public static void main(String [] args) { String str = "Hello, world"; // input 변수 초기화 String input = null; Scanner keyboard = new Scanner(System.in); System.out.print("Please type a string: "); // 공백 기준 하나의 단어(문자열)를 입력 input = keyboard.next(); // str == input 으로는 String 변수는 비교 불가 if(str.equals(input)) { System.out.println("Strings match! :-)"); } else { System.out.println("Strings do not match! :-("); } keyboard.close(); } }
-
str == input, 즉 "=="로 비교하는 것은 primitive type 변수만 가능!
-
그 외에는 str.equals(input) 으로 비교
import java.util.Scanner; class Code4 { 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."); } } }
-
입력값 예시 : Kwon 32 male
3. 배열 만들기
(1) int [] 배열 만들기
class Code5 { public static void main(String [] args) { // declare the array : 정수형 배열 선언 int [] grades; // allocate memory for 5 indices : 배열 만들기 grades = new int[5]; // int [] grades = new int[5]; 로 써도 ok! // 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]); } }
(2) for 문을 사용해서 반복문 결과를 출력하기
public class Code06 { public static void main(String[] args) { int [] grades = new int[5]; // assign some values to the array 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]); } } }
(3) while 문을 사용해서 반복문 결과를 출력하기
public class Code07 { public static void main(String[] args) { int [] grades = new int[5]; // assign some values to the array 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++; } } }
(4) 사용자로부터 n 개의 숫자를 입력 받아서, 합과 최대값을 출력하기
import java.util.Scanner; public class Code08 { public static void main(String[] args) { Scanner kb = new Scanner(System.in); // 입력 받을 정수의 개수 정하기 int n = kb.nextInt(); // n개의 데이터를 가진 data 라는 배열 만들기 int [] data = new int[n]; for (int i=0; i<n; i++) { data[i] = kb.nextInt(); } kb.close(); int sum=0, max = data[0]; for (int i=0; i<n; i++) { sum += data[i]; // sum = sum + data[i]와 동일 if (data[i] > max) { max = data[i]; } } System.out.println("The sum is " + sum + " and the maximum is " + max); } }
4. 반복문
(1) 1부터 100,000 사이의 소수 출력
public class Code10 { public static void main(String[] args) { for (int n = 2; n <= 100000; n++) { boolean isPrime = true; for (int i = 2; i*i <= n && isPrime; i++) { // i의 제곱이 n보다 작거나 같다 if (n % i == 0) { isPrime = false; } if (isPrime) { System.out.println(n); break; } } } } }
(2) 중복된 정수 쌍 출력
- 사용자로부터 n개의 정수를 입력 받아 배열에 저장한다.
- 중복된 정수 쌍의 개수를 출력한다.
import java.util.Scanner; public class Code11 { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int [] data = new int[n]; for (int i=0; i<n; i++) { data[i] = kb.nextInt(); } kb.close(); int count = 0; int j; for (int i=0; i<n; i++) { for (j=i+1; j<n; j++) { // i<j if(data[i] == data[j]) { count++; } } } System.out.println(count); } }
(3) 합의 최대값 출력
- 사용자로부터 n개의 정수를 입력 받아 배열에 저장한다.
- 정수를 더한 값 중 최대값을 출력한다.
import java.util.Scanner; public class Code12 { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int [] data = new int[n]; for (int i=0; i<n; i++) { data[i] = kb.nextInt(); } kb.close(); int maxSum = 0; for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { int sum = 0; for (int k=i; k<=j; k++) { sum += data[k]; if (sum > maxSum) { maxSum = sum; } } } } System.out.println("The max sum is " + maxSum); } }
5. 정렬
(1) 사용자로부터 n개의 정수를 입력받아 오름차순으로 정렬
import java.util.Scanner; public class Code14 { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int [] data = new int[n]; for (int i=0; i<n; i++) { data[i] = kb.nextInt(); } kb.close(); // bubble sort for (int i=n-1; i>0; i--) { for (int j = 0; j < i; j++) { if (data[j] > data[j + 1]) { // swap data[j] & data[j+1] int tmp = data[j]; data[j] = data[j + 1]; data[j + 1] = tmp; } } } System.out.println("Sorted Data"); for (int i=0; i<n; i++) { System.out.println(data[i]); } } }
- bubble sort : data[0] ~ data[i] 중에서 최대값을 data[i] 위치로 몰아가는 일
(2) 사용자로부터 n개의 정수를 입력받아 오름차순으로 정렬하여 출력
'Java' 카테고리의 다른 글
[Book] 자바 프로그래밍 입문 (0) | 2024.07.11 |
---|---|
[JAVA] BOJ_2739 (0) | 2019.11.22 |
[JAVA] BOJ_2741 (0) | 2019.11.22 |
[JAVA] Exception Handling (0) | 2019.11.20 |
댓글