본 포스팅은 쉽게 배우는 자바 프로그래밍 교재를 바탕으로 작성되었습니다.
Chapter 02. 자바 프로그램 구조와 기초 문법
📍도전 과제
01. 직사각형의 가로와 세로를 키보드로 입력받아 넓이를 구하는 프로그램을 작성해 보자.
public class Do01 {
public static void main(String[] args) {
double w, h, area; //직사각형 가로, 세로, 넓이
Scanner in = new Scanner(System.in);
System.out.print("직사각형의 가로 길이를 입력하세요 : ");
w = in.nextDouble();
System.out.print("직사각형의 세로 길이를 입력하세요 : ");
h = in.nextDouble();
System.out.printf("직사각형의 넓이는 %.1f입니다.", w * h);
}
}
02. 입력된 정수가 홀수인지 짝수인지를 출력하는 프로그램을 조건 연산자를 사용해서 작성해 보자.
import java.util.Scanner;
public class Do02 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int x = in.nextInt();
x = (x % 2 == 0) ? 1 : 0;
if (x == 1)
System.out.println("짝수");
else
System.out.println("홀수");
}
}
📍프로그래밍 문제
01번. println() 메서드를 이용해 다음 형태의 피라미드를 출력하는 프로그램을 작성하라.
public class Pro01 {
public static void main(String[] args) {
System.out.println(" * ");
System.out.println(" *** ");
System.out.println(" ***** ");
System.out.println(" ******* ");
System.out.println(" ********* ");
System.out.println("***********");
}
}
02. 키보드로 입력받은 정수의 제곱 값을 출력하는 프로그램을 작성하라.
public class Pro01 {
public static void main(String[] args) {
System.out.print("정수를 입력하세요 : ");
Scanner in = new Scanner(System.in);
int x = in.nextInt();
System.out.printf("%d의 제곱은 %d", x, x * x);
}
}
03. 원기둥의 부피를 구하는 프로그램을 작성하라.
import java.util.Scanner;
public class Pro01 {
public static void main(String[] args) {
double r, h;
final double PI = 3.14;
Scanner in = new Scanner(System.in);
System.out.print("원기둥의 밑면 반지름은? ");
r = in.nextDouble();
System.out.print("원기둥의 높이는? ");
h = in.nextDouble();
System.out.printf("원기둥의 부피는 %.1f", r * r * h * PI);
}
}
04. 초를 입력하면 시간, 분, 초로 환상해 출력하는 프로그램을 작성하라.
import java.util.Scanner;
public class Pro01 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("초 단위 정수를 입력하세요 : ");
int x = in.nextInt();
System.out.printf("%d시간 %d분 %d초", (x / 60)/60, x / 60, x % 60);
}
}
05. 임의의 소문자로 초기화된 char 타입 변수 c를 대문자로 변환해 출력하는 프로그램을 작성하라.
public class Pro01 {
public static void main(String[] args) {
char x = 'h';
System.out.printf("%c", (int)x - 32);
}
}
06. 키보드로 화씨온도(°F)를 입력받아 섭씨온도(°C)로 환산해 출력하는 프로그램을 작성하라.
double c 입력할 때, 숫자를 소수점까지 써주어야 한다.
double c = (5 / 9) * (f - 32);
위 코드와 같이 썼는데 5/9는 0이 되므로 정확한 결과를 얻을 수 없음 (정수 타입을 사용하면 제대로 X)
import java.util.Scanner;
public class Pro01 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("화씨온도를 입력해주세요 : ");
double f;
f = in.nextDouble();
double c = (5.0 / 9.0) * (f - 32.0);
System.out.println("화씨온도 " + f + "는 섭씨온도로 " + c + "입니다.");
}
}
07. 키보드로 정수를 입력받아 ① 4와 5로 나누어지는지, ② 4 또는 5로 나누어지는지, ③ 4나 5 중 하나로 나누어지지만 두 수 모두로는 나누어지지 않는지를 true/false로 출력하는 프로그램을 작성하라.
③번은 4나 5 중 하나로 나누어지지만 4와 5 둘 다로 나누어지지 않는 경우를 true로 하였다.
import java.util.Scanner;
public class Pro07 {
public static void main(String[] args) {
int x;
Scanner in = new Scanner(System.in);
x = in.nextInt();
//1. 4와 5로 나누어지는가
if ((x % 4 == 0) && (x % 5 == 0)) {
System.out.println(true);
}
else
System.out.println(false);
//2. 4 또는 5로 나누어지는가
if ((x % 4 == 0) || (x % 5 == 0)) {
System.out.println(true);
}
else
System.out.println(false);
//3. 4와 5 중 하나로 나누어지지만 두 수 모두로는 나누어지지 않는지
if ((x % 4 == 0) || (x % 5 == 0)) {
if(!(x % 4 == 0) && (x % 5 == 0))
System.out.println(true);
else
System.out.println(false);
}
else
System.out.println(false);
}
}
08. 키보드로 0부터 999 사이의 정수를 입력받아 각 자릿수를 더한 결과를 출력하는 프로그램을 작성하라.
세 자리 수를 고려하여 x1이란 변수를 만들었다. x1변수는 입력받은 x값의 몫이다.
그리고 sum이라는 각 자릿수의 합을 저장하는 변수를 만들었다. sum은 x값의 나머지, x1값의 몫, 나머지가 더해져서 각 자릿수의 합이 만들어진다.
import java.util.Scanner;
public class Pro08 {
public static void main(String[] args) {
int x;
Scanner in = new Scanner(System.in);
System.out.print("0~999 사이의 숫자를 입력하세요 : ");
x = in.nextInt();
int x1 = 0;
int sum = 0;
x1 = x / 10;
sum = (x % 10) + (x1 / 10) + (x1 % 10);
System.out.println("각 자릿수의 합 = " + sum);
}
}
09. 대학을 졸업하려면 최소 140학점을 이수해야 한다고 하자. 이수한 학점 중 전공은 70학점 이상이어야 하며, 교양과 일반은 각각 30학점 이상이거나 두 영역이 80학점 이상이어야 한다. 이수한 세 개의 학점을 각각 키보드로 입력받아 졸업 여부를 출력하는 프로그램을 작성하라.
public class Pro09 {
public static void main(String[] args) {
//순서대로 전공, 교양, 일반
int x, y, z;
Scanner in = new Scanner(System.in);
System.out.print("전공 이수 학점 : ");
x = in.nextInt();
System.out.print("교양 이수 학점 : ");
y = in.nextInt();
System.out.print("일반 이수 학점 : ");
z = in.nextInt();
if (x + y + z >= 140) {
if ( x >= 70 && ((y >= 30)&&(z >= 30)) || (y + z >= 80)) {
System.out.println("졸업 가능");
}
else
System.out.println("졸업 불가능");
}
else
System.out.println("졸업 불가능");
}
}
'Language > JAVA' 카테고리의 다른 글
[JAVA] 쉽게 배우는 자바 프로그래밍_5장 문자열, 배열, 열거 타입 (0) | 2022.04.25 |
---|---|
[JAVA] 쉽게 배우는 자바 프로그래밍_03장 제어문과 메서드 (0) | 2022.04.24 |
[JAVA] 10일차. 다차원 배열(3), ArrayList 클래스(4) (0) | 2022.02.27 |
[JAVA] 09일차. 배열과 ArrayList(1), 객체 배열 사용하기(2) (0) | 2022.02.26 |
[JAVA] 08일차. 클래스와 객체2 (3), (4) (0) | 2022.02.26 |