-
출처 : 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 |
댓글