성취도 확인 및 복습을 위한 과제
1. 자바의 변수와 타입을 복습할 수 있는 과제
목표: 기본 데이터 타입과 객체 타입의 차이점을 이해하고, 다양한 타입의 변수를 선언하고 초기화하는 방법을 실습한다.
과제:
- 다음 타입들을 가진 변수를 선언하고, 각각에 적절한 값을 할당하세요: int, double, char, boolean, String.
package javabasic;
import java.util.Scanner;
public class Example01 {
public static void main(String[] args) {
/**
* 다음 타입을 가진 변수를 선언하고,
* 각각 적절한 값을 할당하세요
* int, double, char, boolean, String
*/
int intVariable = 2100000000;
intVariable = Integer.MIN_VALUE;
intVariable = Integer.MAX_VALUE;
double doubleVariable = 0.123456789012345;
doubleVariable = Double.MAX_VALUE;
char charVariable = 'a';
char charVariable2 = 'A';
boolean isTrue = false;
String strVariable = "Spring";
strVariable.charAt(2);
}
}
- 두 개의 int 변수를 선언하고, 이들의 합, 빼기, 곱, 나눗셈의 결과를 출력하는 프로그램을 작성하세요.
package javabasic;
public class Example02 {
public static void main(String[] args) {
/**
* 두 개의 int 변수를 선언하고,
* 합, 빼기, 곱, 나눗셈 결과를 출력하는 프로그램
*/
int leftNumber = 10;
int rightNumber = 5;
System.out.println(leftNumber + rightNumber);
System.out.println(leftNumber - rightNumber);
System.out.println(leftNumber * rightNumber);
System.out.println(leftNumber / rightNumber);
}
}
- 사용자로부터 이름과 나이를 입력받아, 그 정보를 화면에 출력하는 간단한 프로그램을 작성하세요.
package javabasic;
import java.util.Scanner;
public class Example03 {
public static void main(String[] args) {
/**
* 사용자로부터 이름과 나이를 입력받아
* 그 정보를 화면에 출력하는 프로그램 작성
*
* 이름은 숫자가 들어오면 안됩니다.
* 나이는 숫자만 들어와야 합니다.
*/
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
if(isNotDigit(name)) {
System.out.println("이름에 숫자는 No!");
return;
}
String age = sc.nextLine();
if(!isDigit(age)) {
System.out.println("No!");
return;
}
System.out.printf("사용자의 이름은 %s 나이는 %s", name, age);
}
public static boolean isNotDigit(String str) {
String digit = "0123456789";
for(int i = 0; i <str.length(); i++) {
if(digit.indexOf(str.charAt(i)) != -1) {
return true;
}
}
return false;
}
public static boolean isDigit(String str) {
String digit = "0123456789";
for(int i = 0; i <str.length(); i++) {
if(digit.indexOf(str.charAt(i)) == -1) {
return false;
}
}
return true;
}
}
2. 자바의 연산자를 복습할 수 있는 과제
목표: 다양한 연산자(산술, 비교, 논리 연산자 등)의 사용 방법을 이해하고, 이를 활용하여 간단한 계산이나 조건 검사를 할 수 있다.
과제:
- 사용자로부터 두 개의 숫자를 입력받아, 이들에 대한 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산의 결과를 출력하세요.
- 두 개의 숫자는 모두 double타입의 값입니다. 결과값도 double타입을 반환해야 합니다.
- 나눗셈에서 0으로 나눌 경우 나눌 수 없는 수라는 예외 메시지를 출력해야 합니다.
package javabasic;
import java.util.Scanner;
public class Example04 {
public static void main(String[] args) {
/**
* 사용자로부터 두 개의 숫자를 입력받아
* 이들에 대한 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지
* 연산의 결과를 출력
*/
Scanner scanner = new Scanner(System.in);
System.out.print("첫번째 숫자를 입력해 주세요: ");
double num1 = scanner.nextDouble();
scanner.nextLine();
System.out.print("두번째 숫자를 입력해 주세요: ");
double num2 = scanner.nextDouble();
scanner.nextLine();
System.out.println("덧셈 결과는 : " + (num1 + num2));
System.out.println("뺄셈 결과는 : " + (num1 - num2));
System.out.println("곱셈 결과는 : " + (num1 * num2));
//0으로 나눌 경우 -> '나눌 수 없는 수'라는 예외 메시지를 출력
if (num2 != 0) {
System.out.println("나눗셈 결과는 : " + (num1 / num2));
} else {
System.out.println("나눌 수 없는 수입니다.");
}
}
}
- 세 개의 다른 정수 값들을 비교하여 가장 큰 수와 가장 작은 수를 결정하는 프로그램을 작성하세요.
package javabasic;
import java.util.Scanner;
public class Example05 {
public static void main(String[] args) {
/**
* 세 개의 다른 정수 값들을 비교하여
* 가장 큰 수와 가장 작은 수를 결정하는 프로그램을 작성
*/
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 숫자를 입력해주세요: ");
int num1 = scanner.nextInt();
System.out.print("두 번째 숫자를 입력해주세요: ");
int num2 = scanner.nextInt();
System.out.print("세 번째 숫자를 입력해주세요: ");
int num3 = scanner.nextInt();
int[] numArr = {num1, num2, num3};
int max = numArr[0];
int min = numArr[0];
for (int i = 1; i < numArr.length; i++) {
if (numArr[i] > max) {
max = numArr[i];
}
//max = Math.max(max, numArr[i]);
if (numArr[i] < min) {
min = numArr[i];
}
//min = Math.min(min, numArr[i]);
}
System.out.println("가장 큰 수는: " + max);
System.out.println("가장 작은 수는: " + min);
}
}
- &&, ||, ! 연산자를 사용하여 논리 연산을 수행하는 예제를 작성하세요.
package javabasic;
public class Example06 {
public static void main(String[] args) {
/**
* && || ! 연산자를 사용하여
* 논리 연산을 수행하는 예제를 작성하세요
*/
//boolean형 a, b 선언 및 초기화
boolean a = false;
boolean b = false;
System.out.println(a && a); //a and a
System.out.println(a && b); //a and b
System.out.println(b && a); //b and a
System.out.println(b && b); //b and b
System.out.println(a || a); //a or a
System.out.println(a || b); //a or b
System.out.println(b || a); //b or a
System.out.println(b || b); //b or b
System.out.println(!a); //not a
System.out.println(!b); //not b
}
}
3. 자바의 조건문과 반복문을 복습할 수 있는 과제
목표: 조건문과 반복문을 사용하여 복잡한 로직과 반복되는 작업을 처리할 수 있다.
과제:
- 사용자로부터 숫자를 하나 입력받아, 이 숫자가 양수인지, 음수인지, 아니면 0인지를 판단하여 출력하는 프로그램을 작성하세요.
package javabasic;
import java.util.Scanner;
public class Example07 {
public static void main(String[] args) {
/**
* 사용자로부터 숫자를 하나 입력받아,
* 이 숫자가 양수인지, 음수인지, 아니면 0인지를 판단하는 프로그램을 작성하세요.
*/
//Scanner 객체 생성
Scanner scanner = new Scanner(System.in);
//사용자로부터 숫자를 하나 입력 받기
System.out.print("숫자를 입력하세요: ");
double num = scanner.nextDouble();
//양수인지 0인지 음수인지 판단
if (num > 0) {
System.out.println("양수입니다.");
} else if (num == 0) {
System.out.println("0입니다.");
} else {
System.out.println("음수입니다.");
}
}
}
- 1부터 100까지의 정수 중에서 짝수만 출력하는 프로그램을 작성하세요.
package javabasic;
public class Example08 {
public static void main(String[] args) {
/**
* 1부터 100까지의 정수 중에서
* 짝수만 출력하는 프로그램을 작성하세요.
*/
//1부터 100까지 나머지가 0이라면 -> 짝수 -> 출력
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
}
}
- 사용자로부터 숫자 n을 입력받아, 1부터 n까지의 합을 계산하여 출력하는 프로그램을 작성하세요.
package javabasic;
import java.util.Scanner;
public class Example09 {
public static void main(String[] args) {
/**
* 사용자로부터 숫자 n을 입력받아,
* 1부터 n까지 합을 계산하여 출력하는 프로그램을 작성하세요.
*/
//Scanner 객체 생성
Scanner scanner = new Scanner(System.in);
//사용자로부터 숫자 입력 받기
System.out.print("숫자를 입력하세요: ");
int num = scanner.nextInt();
//sum에 누적하여 더하여 출력
int sum = 0;
for (int i = 1; i <= num; i++) {
sum += i;
}
System.out.println(sum);
}
}