Java/OOP
실습
yunajoe
2022. 10. 8. 13:21
평균값 계산기
// 리턴값의 자료형은 double
// 메소드는 computeAverage
// 파라미터로 int 배열 intArray를 받음
// Average.java
public class Average {
double computeAverage(int[] intArray){
int total = 0;
for(int i=0; i < intArray.length; i++){
total = total + intArray[i];
}
return (double) total /intArray.length;
}
}
// AverageMain.java
public class AverageMain {
public static void main(String[] args) {
Average finder = new Average();
int[] testArray1 = {3,7,3};
System.out.println(finder.computeAverage(testArray1));
int[] testArray2 = {1,3,4,7};
System.out.println(finder.computeAverage(testArray2));
int[] testArray3 = {4};
System.out.println(finder.computeAverage(testArray3));
int[] testArray4 = {1,2,3,4,5};
System.out.println(finder.computeAverage(testArray4));
}
}
// 실행결과
4.333333333333333
3.75
4.0
3.0
두 원소의 차 중 최댓값 구하기
// GreatestDifferenceFinder.java
public class GreatestDifferenceFinder {
int greatestDifference(int[] intArray) {
// 코드를 입력하세요.
// max_number, min_number의 위치가 아래아 같을 때는 오류가 난다
//int max_number = intArray[0];
//int min_number = intArray[0];
if (intArray.length < 2){
return 0;
}
int max_number = intArray[0];
int min_number = intArray[0];
for(int i = 0; i <intArray.length; i++){
if(intArray[i] > max_number){
max_number = intArray[i];
}
if(min_number > intArray[i]){
min_number = intArray[i];
}
}
return max_number - min_number;
}
}
// GreatestDifferenceFinderMain.java
public class Main {
public static void main(String[] args) {
GreatestDifferenceFinder finder = new GreatestDifferenceFinder();
// 테스트 1
int[] testArray1 = {-2, 7, 3};
System.out.println(finder.greatestDifference(testArray1));
// 테스트 2
int[] testArray2 = {8, 3, 14, 1};
System.out.println(finder.greatestDifference(testArray2));
// 테스트 3
int[] testArray3 = {4, 2, 3, 1};
System.out.println(finder.greatestDifference(testArray3));
// 테스트 4
int[] testArray4 = {};
System.out.println(finder.greatestDifference(testArray4));
// 테스트 5
int[] testArray5 = {1, 2, -3, 4, 5};
System.out.println(finder.greatestDifference(testArray5));
// 테스트 6
int[] testArray6 = {1};
System.out.println(finder.greatestDifference(testArray6));
}
}
// 결과
9
13
3
0
8
0
==================================================================
+ else를 붙여보았당
public class GreatestDifference {
int greatestDifference(int[] intArray) {
if (intArray.length < 2) {
return 0;
} else {
int max_number = intArray[0];
int min_number = intArray[0];
for (int i = 0; i < intArray.length; i++) {
if (intArray[i] > max_number) {
max_number = intArray[i];
} else if (intArray[i] < min_number) {
min_number = intArray[i];
}
}
return max_number - min_number;
}
}
}
아래처럼
int max_number = intArray[0];
int min_number = intArray[0];
를 < 2 에다가 주면은 ArrayIndexOutOfBoundsException 에러가 난다. 왜냐하면 빈배열도 있기 때문에!
public class GreatestDifference {
int greatestDifference(int[] intArray){
int max_number = intArray[0];
int min_number = intArray[0];
if (intArray.length < 2){
return 0;
}
별찍기
- 자바는 문자열 * 숫자가 안되기 때문에 이중 뽀문을 써야한당
// Triangle.java
public class Triangle {
public void printTriangle(int height){
for(int i=1; i<=height; i++){
for(int j=1; j<=i; j++){
System.out.print("* ");
}
System.out.println();
}
}
}
// TriangleMain.java
public class TriangleMain {
public static void main(String[] args) {
Triangle printer = new Triangle();
printer.printTriangle(3);
System.out.println("----------");
printer.printTriangle(5);
System.out.println("----------");
}
}
//결과
*
* *
* * *
----------
*
* *
* * *
* * * *
* * * * *
----------
피라미드 만들기
// step-by-step
// 별의개수는 height=3일때 1,3,5 & height=5일때 1,3,5,7 & height=10일때 1,3,5,7,9 => 등차수열 공식이용=> 2n-1
// Pyramid.java
public class Pyramid {
public void printPyramid(int height){
for(int i=1; i<=height; i++){
System.out.println(2*i-1);
}
}
}
// Main.java
public class PyramidMain {
public static void main(String[] args){
Pyramid printer = new Pyramid();
// 테스트
printer.printPyramid(3);
System.out.println("----------");
printer.printPyramid(5);
System.out.println("----------");
printer.printPyramid(10);
}
}
// 결과값
1
3
5
----------
1
3
5
7
9
----------
// for문을 이욯애 2*i-1까지 limit을 두고 출력하게 해야 함
public class Pyramid {
public void printPyramid(int height){
// 별의 갯수는 1 + (n-1)2 => 2n - 1
for(int i=1; i<=height; i++){
for(int j=1; j<=2*i-1; j++){
System.out.print(j);
}
System.out.println();
}
}
}
// 결과값
1
123
12345
----------
1
123
12345
1234567
123456789
----------
=======================================================================
// 공백넣기
public class Pyramid {
public void printPyramid(int height){
for(int i=1; i<=height; i++){
for(int j=1; j<=height-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println();
}
}
}
코드잇 소개 프로그램
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("메뉴를 선택e해주세요!(I)ntro (C)ourses (E)xit");
boolean MainMenu = true;
while (MainMenu){
String choice = scanner.next();
switch(choice){
case "I":
case "i":
System.out.println("안녕하세요! 오늘하루도 화이팅 \n"
+"메인메뉴로 돌아갑니다");
break;
case "C":
case "c":
boolean CourseMenu = true;
while(CourseMenu){
System.out.println("수업을 소개합니다.\n"
+ "(P)ython (J)ava (i)OS (B)ack");
switch(scanner.next()){
case "B":
case "b":
CourseMenu = false;
break;
case "P":
case "p":
System.out.println("파이썬수업. \n"
+"재미있는파이써닝!");
break;
case "J":
case "j":
System.out.println("자바수업 \n"
+"재미있는자바!");
break;
case "I":
case "i":
System.out.println("아이폰짱..! \n"
+ "아이폰은이뻐!");
default:
System.out.println("다시입력해주세요");
break;
}
break;
}
case "E":
case "e":
System.out.println("프로그램을종료합니다");
MainMenu = false;
break;
default:
System.out.println("다시입력해주세요");
break;
}
}
}
}