자바 코딩 연습 Chapter 3장 입니다.
참고한 점도 많고, 고민도 많이 해봤었는데, 해결하는데 꽤 시간이 걸렸던 것 같습니다.
실습문제 1번)
영문소문자를 하나 입력받고 그 문자보다 알파벳 순위가 낮은 모든 문자를 출력하는 프로그램을 작성하라.
package Java_Essential_Week3;
import java.util.Scanner;
public class Lesson_01 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("알파벳 한 문자를 입력해주세요. ");
char alphabet = sc.nextLine().charAt(0); // 문자열의 첫번쨰 문자를 alphabet에 저장
int i,j;
for (i= 'a'; i<=alphabet; i++)
{
if(i <= alphabet)
{
System.out.print((char)i);
}
for(j=i+1; j<=alphabet; j++)
{
System.out.print((char)j);
}
System.out.println();
}
sc.close();
}
}
출력)
실습문제 2번)
정수를 10개 입력받아 배열에 저장한 후, 배열을 검색하여 3의 배수만 골라 출력하는 프로그램을 작성하라.
package Java_Essential_Week3;
import java.util.Scanner;
public class Lesson_02 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int arr[] = new int[10];
int i;
System.out.println("정수 10개를 입력하세요. ");
for(i=0; i<arr.length;i++) // arr의 길이는 10개이므로 10번반복
{
arr[i] = sc.nextInt();
}
// 입력을 받아 배열에 저장하는 반복문이다.
System.out.print("입력한 정수 중 3의 배수는 = ");
for(i=0; i<arr.length; i++)
{
if(arr[i] % 3 == 0) // arr배열의 i원소를 3으로 나누었을때 나머지가 0인 것이 3의 배수인 것
System.out.print(arr[i] + " ");
}
// 입력받은 배열에서 3의 배수를 if조건문을 활용하여 검색, 출력하는 반복문이다.
sc.close();
}
}
출력)
실습문제 3번)
정수를 입력받아 짝수와 홀수를 출력하는 프로그램을 작성하라. 사용자가 정수를 입력하지 않으면 종료한다.
package Java_Essential_Week3;
import java.util.Scanner;
public class Lesson_03 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("판별할 정수를 입력하세요. ");
try
{
int num = sc.nextInt();
if (num % 2 == 0 && num == 0 )
System.out.println("입력하신 정수는 '짝수'입니다.");
else if (num % 2 != 0)
System.out.println("입력하신 정수는 '홀수'입니다.");
}
catch (Exception e)
{
System.out.println("정수를 입력하지 않아 시스템을 종료합니다.");
}
finally
{
sc.close();
}
}
}
출력)
실습문제 4번)
'일','월'...'토'로 초기화된 문자 배열 day를 선언하고, 사용자로부터 정수를 입력받아 7(배열 day의 크기)로 나눈 나머지를 인덱스로 하여 배열 day에 저장된 문자를 출력하라. 음수가 입력되면 프로그램을 종료하라. 아래 실행 결과와 같이 예외 처리하라.
package Java_Essential_Week3;
import java.util.Scanner;
public class Lesson_04
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
char day[] = {'일', '월', '화','수','목','금','토'};
while(true) // 무한반복하는 동안
{
System.out.print("정수를 입력하세요 = ");
try
{
int num = sc.nextInt(); // 숫자를 num에 저장한다.
if(num < 0)
{
System.out.print("음수를 입력하셨으므로 프로그램을 종료합니다.");
break; // 음수를 입력하면 프로그램을 종료하도록 break문으로 프로그램을 나간다.
}
System.out.println(day[num%day.length]); // day배열의 길이를 num정수로 나눈 숫자를 day[n]으로 만든 후 출력(나머지)
}
catch(Exception e) // 정수가 아닌 문자를 입력하였을때
{
System.out.println("정수를 입력해주세요");
sc.nextLine(); // 정수를 입력하지않아도 한번더 입력할 수 있도록 다음 줄에서 다시 입력을 받는다.
}
}
sc.close(); // while 문 밖에서 Scanner클래스를 끝낸다.
}
}
출력)
실습문제 5번)
정수를 10개 입력받아 배열에 저장하고 증가 순으로 정렬하여 출력하라.
package Java_Essential_Week3;
import java.util.Scanner;
public class Lesson_05 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
System.out.print("정수 10개를 입력하세요 = ");
int i, j;
int temp = 0; // 임시 저장소 선언, 정렬 시에 필요하다.
for(i = 0; i < 10; i++) // 배열의 길이인 10번 반복하는 동안
{
arr[i] = sc.nextInt(); // 배열 한 칸 한 칸 입력받은 정수를 대입한다.
}
// 입력받는 for 반복문이다.
for(i = 0; i < arr.length; i++) // 배열의 길이동안 반복한다.
{
for(j = 0; j < arr.length-i-1; j++) // i가 0일때를 대비해 for 조건식에 i-1 로써 길이에서 1부터 빼는 것을 시작하도록 만든다.
{
if(arr[j] > arr[j+1]) // 만약 arr[j]번째 원소가 j+1만큼 증가한 자리의 원소보다 크다면
{
temp = arr[j]; // temp 임시 저장소에 arr[j]번째 원소를 입력한다.
arr[j] = arr[j+1]; // 그 후 arr[j]에는 arr[j]보다 한 칸 더 많은 원소를 대입한다.
arr[j+1] = temp; // 임시 저장소에 저장된 값을 arr[j+1]에 대입한다.
}
}
}
// 입력받은 데이터를 정렬해주는 for 반복문이다.
for(i = 0; i < 10; i++) // 정렬한 결과들을 출력해주는 반복문을 만든다.
{
System.out.print(arr[i] + " "); // 띄어쓰기로 정렬된 배열 원소값을 출력한다.
}
}
}
출력)
실습문제 6번)
다음과 같이 영어와 한글의 짝을 이루는 2개의 배열을 만들고, 사용자로부터 영어 단어를 입력 받아 한글을 출력하는 프로그램을 작성하라. "exit"를 입력하면 프로그램을 종료하라.
package Java_Essential_Week3;
import java.util.Scanner;
public class Lesson_06 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String english[] = {"student", "love", "java", "happy", "future"};
String korean[] = {"학생", "사랑", "자바", "행복한", "미래"};
int i;
while (true) // 무한 반복하는 동안
{
System.out.print("영어 단어를 입력해주세요 = ");
String data = sc.nextLine();
for(i = 0; i<english.length; i++) // english의 배열길이만큼 반복하는 동안
{
if(data.equals(english[i])) // 만약 입력한 영어가 english의 i번쨰 데이터와 같다면
System.out.println(korean[i]); // 같은 위치인 i번째 korean 원소데이터를 출력한다.
else if(!data.equals(english[i]) && i == english.length) // 만약 data가 english의 원소와 같지않거나, english의 길이가 i와 같게된다면
System.out.println("입력하신 영어단어는 없는 영어 단어입니다."); // 이 프린트문을 출력한다.
}
if (data.contentEquals("exit")) // exit를 입력하게되면 프로그램을 종료하게 된다.
{
System.out.println("프로그램을 종료합니다.");
sc.close(); // 스캐너클래스를 종료하고,
System.exit(0); // 프로그램도 종료합니다.
}
}
}
}
출력)
실습문제 7번)
1부터 99까지, 369게임에서 박수를 쳐야 하는 경우, 순서대로 화면에 출력하라.
package Java_Essential_Week3;
public class Lesson_07 {
public static void main(String[] args)
{
System.out.println("**********369게임 시작**********");
for(int i = 0; i <= 99; i++)
{
int one = i/10; // 10, 20, 30, 40... 90까지 저장, 즉 10의 자리
int two = i%10; // 10으로 나눈 나머지들 즉 1의자리
if(one == 0 && two % 3 == 0) // 10,20,30,40이면서 1의 자리 숫자가 3으로 나누어 떨어지는 경우
// 13, 16, 19, 23, 26, 29... 99까지
System.out.println(i + " 박수 짝"); // i(숫자)와 함꼐 박수를 출력
else if(one % 3 != 0 && two%3 == 0 && two != 0) // 10의 자리 숫자가 30, 60, 90 이 아니며,
// 1의자리 숫자가 0이아니고, 3,6,9인 경우
// 1의 자리 숫자만 해당되므로 박수 한번.
System.out.println(i + " 박수 짝");
else if(one % 3 == 0 && two == 0) // 30,60,90인 경우
System.out.println(i + " 박수 짝");
else if(one % 3 == 0 && two%3 == 0)
System.out.println(i + " 박수 짝짝");
}
System.out.println("**********369게임 끝**********");
}
}
출력)
실습문제 8번)
컴퓨터와 사용자의 가위바위보 게임 프로그램을 작성하라.
컴퓨터는 랜덤하게 가위,바위,보를 선택하며, 누가 이겼는지를 출력한다.
"그만"을 입력하면 게임을 종료한다.
package Java_Essential_Week3;
import java.util.Random;
import java.util.Scanner;
public class Lesson_08 {
public static void main(String[] args)
{
Random random = new Random();
Scanner sc = new Scanner(System.in);
String game[] = {"가위", "바위", "보"};
System.out.println("컴퓨터와 가위, 바위, 보 게임을 시작합니다.");
while(true)
{
System.out.print("가위, 바위, 보! = ");
String me = sc.nextLine();
int computer = random.nextInt(3);
if(me.equals("가위")) // 가위를 내면
{
if(computer == 0) // 0을 가위라고 가정한다.
{
System.out.println("사용자 = 가위, 컴퓨터 = 가위, 비겼습니다.");
}
else if(computer == 1) // 1을 바위라고 가정한다.
{
System.out.println("사용자 = 가위, 컴퓨터 = 바위, 졌습니다.");
}
else if(computer == 2) // 2를 보라고 가정한다.
{
System.out.println("사용자 = 가위, 컴퓨터 = 보, 이겼습니다.");
}
}
else if(me.equals("바위"))
{
if(computer == 0) // 0을 가위라고 가정한다.
{
System.out.println("사용자 = 바위, 컴퓨터 = 가위, 이겼습니다.");
}
else if(computer == 1) // 1을 바위라고 가정한다.
{
System.out.println("사용자 = 바위, 컴퓨터 = 바위, 비겼습니다.");
}
else if(computer == 2) // 2를 보라고 가정한다.
{
System.out.println("사용자 = 바위, 컴퓨터 = 보, 졌습니다.");
}
}
else if(me.equals("보"))
{
if(computer == 0) // 0을 가위라고 가정한다.
{
System.out.println("사용자 = 보, 컴퓨터 = 가위, 졌습니다.");
}
else if(computer == 1) // 1을 바위라고 가정한다.
{
System.out.println("사용자 = 보, 컴퓨터 = 바위, 이겼습니다.");
}
else if(computer == 2) // 2를 보라고 가정한다.
{
System.out.println("사용자 = 보, 컴퓨터 = 보, 비겼습니다.");
}
}
else if(me.equals("그만"))
{
System.out.println("게임을 종료합니다.");
sc.close();
System.exit(0);
}
else
System.out.println("가위, 바위, 보 중에서 하나를 입력하세요. ('그만'을 입력하시면 게임을 종료합니다.");
}
}
}
출력)
파이썬과 자바를 같이 공부하다보니 각 언어를 코딩시작할때에는 조금 버벅거리기도 하는 것 같습니다.
이번 게시물이 자바 공부에 좋은 도움이 되시길 바랍니다.
'Programming > Java_자바' 카테고리의 다른 글
[JAVA 기초] 대중교통 이용 프로그램 만들기 (0) | 2021.12.08 |
---|---|
[JAVA 기초] 생성자 (0) | 2021.12.08 |
[JAVA 기초] (2, 8, 10,16) 진수 별 표현 방식 및 출력 (0) | 2021.12.06 |
[JAVA 에센셜] 자바 코딩 연습_챕터4_실습문제 (0) | 2021.04.06 |
[JAVA 에센셜] 자바 코딩 연습_챕터2_실습문제 (0) | 2021.03.24 |