import java.util.Scanner;
public class HW1_calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("::::::::::사칙연산 계산기::::::::::");
int a = 0, b = 0; // 입력값 2개
char c; // 연산자 1개
String input; // 검사를 위한 임시 String 변수
// 첫번째 수 검사
out: while (true) {
System.out.println("첫번째 숫자를 입력해주세요.");
System.out.print(">>> ");
input = sc.next();
for (int i=0; i<input.length(); i++) {
if (input.charAt(i) > 57 || input.charAt(i) < 48) {
System.out.println("유효하지 않은 숫자");
break;
} else {
a = Integer.parseInt(input);
break out;
}
}
}
// 연산자 입력 후 검사
while (true) {
System.out.println("연산자를 입력해주세요 (+, -, *, /)");
System.out.print(">>> ");
input = sc.next();
c = input.charAt(0);
if (c == '+' || c == '-' || c == '*' || c == '/') {
break;
} else {
System.out.print("올바른 연산자가 아닙니다.\n\n");
}
}
// 두번째 수 검사
out: while (true) {
System.out.println("두번째 숫자를 입력해주세요.");
System.out.print(">>> ");
input = sc.next();
for (int i=0; i<input.length(); i++) {
if (input.charAt(i) > 57 || input.charAt(i) < 48) {
System.out.println("유효하지 않은 숫자");
break;
} else {
b = Integer.parseInt(input);
break out;
}
}
}
// 계산 후 출력
System.out.print("\n");
System.out.print("계산 결과\n");
if (c == '+') {
System.out.printf("%d %c %d = %d", a, c, b, a+b);
} else if (c == '-') {
System.out.printf("%d %c %d = %d", a, c, b, a-b);
} else if (c == '*') {
System.out.printf("%d %c %d = %d", a, c, b, a*b);
} else if (c == '/') {
if ( b == 0) {
System.out.println("0으로 나눌 수 없습니다!");
} else {
System.out.printf("%d %c %d = %.2f", a, c, b, (double) a / b);
}
} else {
System.out.println("예상하지 못한 오류 발생");
}
}
}
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Lottery {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
로또 번호 생성기
1. 몇 줄 생성할 것인지 입력 받으면
2. 난수를 생성해서 배열에 저장하고
3. 출력해줌
*/
int[][] nums = null;
while (true) {
// 유저 입력으로 메뉴 선택
System.out.println(":::::::::::::: 로또 번호 생성기 :::::::::::::::");
System.out.println("[1] 생성하기\t\t\t[2] 나가기");
System.out.print(">>> ");
int user_input = sc.nextInt();
// 생성 루틴
if (user_input == 1) {
// 생성할 줄 수 입력
System.out.println("\n몇 줄 생성할까요? (ex. 5)");
System.out.print(">>> ");
user_input = sc.nextInt();
// 배열 초기화
nums = new int[user_input][6];
// 난수 생성 후 배열에 저장
for (int i=0; i<user_input; i++) {
Set<Integer> uniqueNumbers = new HashSet<>(); // 같은 줄에 있는 숫자끼리는 중복될 수 없어야 하므로 '집합'을 사용
while (uniqueNumbers.size() < 6) {
int r = (int)((Math.random() * 45) + 1); // 0 ~ 44에서 랜덤값 +1 -> 1 ~ 45 뽑힘
uniqueNumbers.add(r);
}
// Set의 내용을 배열에 저장 (for each 문)
int index = 0;
for (int number : uniqueNumbers) {
nums[i][index++] = number;
}
// 오름차순 정렬
Arrays.sort(nums[i]);
}
// 결과 출력
System.out.print("\n:::::::::: 오늘의 로또 번호 조합 :::::::::::\n");
for (int i=0; i<user_input; i++) {
System.out.printf("%d번째 조합: ", i+1);
System.out.print(Arrays.toString(nums[i]));
System.out.print("\n");
}
System.out.print(":::::::::::::::: Good Luck! ::::::::::::::::\n\n");
// 결과 출력 후 재시작 이전 확인
System.out.println("계속하려면 아무 키나 누르세요.");
System.out.print(">>> ");
sc.nextLine(); // 입력 버퍼 비우기
sc.nextLine(); // 사용자 입력 대기
System.out.print("\n\n");
} else if (user_input == 2){
break;
} else {
System.out.println("정확한 숫자를 입력해주세요.\n");
}
}
sc.close(); // Scanner 닫기
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 1. 몇 개를 정렬?
System.out.print("몇 개를 정렬하시겠습니까? ---> ");
int size = sc.nextInt();
// 결과를 저장할 배열 선언
int[] nums = new int[size];
// 2. 숫자의 갯수에 맞게 입력
System.out.println("정렬하실 숫자를 입력해주십시오.");
for (int i=0; i<size; i++) {
System.out.printf("%d칸 중 %d개 입력중... --> ", size, i+1);
nums[i] = sc.nextInt();
}
// 3. 오름/내림
System.out.println("정렬 방식을 선택해주세요.");
System.out.print("오름차순 (0) / 내림(1) --> ");
int how = sc.nextInt();
// 4. 방법에 맞게 정렬
// 선택 정렬로, 오름차순 정렬
if (how == 0) {
for (int i = 0; i < nums.length; i++) {
// 인덱스 처음에서부터 순차적으로 min 값 초기 할당
int min_index = i;
for (int j = i+1; j < nums.length; j++) {
// 전체를 검사하며 min_index 검사 후 초기화
if (nums[j] < nums[min_index]) {
min_index = j;
}
}
// 자리 이동 (Swap)
int temp = nums[i];
nums[i] = nums[min_index];
nums[min_index] = temp;
}
} else if (how == 1) {
for (int i = 0; i < nums.length; i++) {
// 인덱스 처음에서부터 순차적으로 max 값 초기 할당
int max_index = i;
for (int j = i+1; j < nums.length; j++) {
// 전체를 검사하며 min_index 검사 후 초기화
if (nums[j] > nums[max_index]) {
max_index = j;
}
}
// 자리 이동 (Swap)
int temp = nums[i];
nums[i] = nums[max_index];
nums[max_index] = temp;
}
}
// 5. 결과 출력
System.out.print(Arrays.toString(nums));
}
}