상세 컨텐츠

본문 제목

자바 실습 코딩(기본예제) pt.1

CODING/Java

by 뚜뚜 DDUDDU 2022. 6. 1. 16:36

본문

 

[0720]
package java0720;

import java.util.Arrays;

public class arrayBasic {

	public static void main(String[] args) {

		
		//1. 배열 변수의 선언.
		int[] arr;  // java style.
		int arr2[];  // c style.
		// int arr3[5]; 자바에서는 선언시 크기 명사가 불가합니다.
		
		//2. 배열 객체의 생성 - 실제 값들이 저장될 공간을 생성.
		arr = new int[5];
		System.out.println(arr);  // 이렇게 해서 출력해보면 배열의 객체의 주소값이 들어감 추후설명예정
		
		
		//3. 배열의 초기화 - 배열 내부에 실제 값을 저장하는 행위.
		//배열의 초기화는 인덱스를 통해 수행합니다.
		//인덱스란 배열 내부의 위치를 지정하는 값이며
		//0번부터 시작하여 1씩 순차적으로 증가합니다. 5개일 경우 > 0~4
	
		arr[0] = 87; // arr=87; (x)
		arr[1] = 95;
		arr[2] = arr[0];
		arr[3] = (int) 3.14;
		arr[4] = 100;
		
		
		//4. 배열의 총 크기(길이) 확인. (배열변수명.length)
		System.out.println("arr배열의 길이: " + arr.length);
		
				
		//5. 배열에 저장된 값을 참조하는 법(사용하는 법)
		System.out.println(":배열의 1번째 데이터: " + arr[0]);
		System.out.println(":배열의 2번째 데이터: " + arr[1]);
		System.out.println(":배열의 3번째 데이터: " + arr[2]);
		System.out.println(":배열의 4번째 데이터: " + arr[3]);
		System.out.println(":배열의 5번째 데이터: " + arr[4]);
		
		//6. 배열의 반복문 처리.
		
		System.out.println("---------------------------");
		for(int idx=0; idx<arr.length; idx++) {
			System.out.println("배열의 " + (idx+1)+ "번째 데이터: " + arr[idx]);
			
			
		//7. 배열의 내부 요소값을 문자열 형태로 한눈에 출력하기.
			
			System.out.println("-----------------------------");
			System.out.println(Arrays.toString(arr));  //자동완성으로 해야 맨앞에 import
			
			
		//8. 배열의 선언과 동시에 생성을 하는 방법
			
			double[] dArr = new double[3];  //배열은 삭제기능 없음(크기가 고정되어서) 따로 하나를 만들어야 함
			
			String[] sArr = new String[4];
			byte[] bArr = new byte[7];
			
			System.out.println("-------------------------");
			System.out.println(Arrays.toString(dArr));
			System.out.println(Arrays.toString(sArr));
			System.out.println(Arrays.toString(bArr));

			//배열의 생성과 동시에 초기화를 하는 방법
			System.out.println("------------------------------------");
			
			char[] letters = new char[] {'A', 'b', 'c', 'd'};
			System.out.println(Arrays.toString(letters));
			
			
			//선언과 동시에 초기화를 할 때 단 1번만 가능한 문법.
			String[] names = {"김철수", "홍길동", "박영희"};
			System.out.println(Arrays.toString(names));
			// names = {"김철수", "홍길동", "박영희", "박찬호"}; (x) 수정 안됨 배열의 크기가 이미 정해졌기 때문에
			
			names = new String[] {"김철수", "홍길동", "박영희", "박찬호"}; // 그래서 새로운 객체를 생성함
			System.out.println(Arrays.toString(names));
			
			
			
			
			
			
			
			
		}
		
		
		
		
		
	}

}
 
package java0720;

import java.util.Arrays;
import java.util.Scanner;

public class ArrayInsert {

	public static void main(String[] args) {

		
		Scanner sc = new Scanner(System.in);
		String[] names = new String[10];
		
		for(int i=0; i<names.length; i++) {
			
			System.out.println("이름을 입력하세요: ");
			System.out.println("그만 입력하고 싶으면 '그만'이라고 쓰세요.");
			String name = sc.next();
			
			/*
			 - 자바에서는 문자열 동등 비교시에 == 연산자를 사용하시면 안됩니다.
			 - 비교문자열1.equals(비교문자열2)를 사용하셔야 합니다.
			 */
			
			
			
			if(name.equals("그만")) {
				System.out.println("입력을 종료합니다.");
				break;
				
			}
			
			
			names[i] = name;

			
			System.out.print("# 현재까지 입력된 이름:");
//			System.out.println(Arrays.toString(names));
			
			for(String n : names) {
				if(n == null) break; //null은 문자열 아님
				System.out.print(n + " ");
				
			}
			System.out.println();
			
		}
		

	}

}
 
package java0720;

import java.util.Scanner;

public class arrayinsertquiz {

	public static void main(String[] args) {

		
		/*
		 1. 스캐너를 사용하여 사용자가 먹고 싶은 음식을 입력할 수 있는 환경을 제공하세요.
		 2. 사용자가 "그만"이라고 입력시 입력을 중지하고 사용자가 그동안 입력했던 음식을 null값을 포함시키지 말고 출력하세요.
		 */

		Scanner sc = new Scanner(System.in);
		String[] foods = new String[100];
		
		System.out.println("# 먹고 싶은 음식을 입력하세요.");
		System.out.println("# 입력을 중지하려면 <그만>이라고 입력하세요.");
		
		
		for(int i=0; i<foods.length; i++) {
			
			System.out.print("> ");
			String food = sc.nextLine();
			
			if(food.equals("그만")) {
				System.out.println("입력을 종료합니다");
				break;
				
			}
			
			foods[i] = food;
			
		}

			System.out.print("내가 먹고 싶은 음식들: [");

			
			for(String n : foods) {
				if(n == null) break;
				System.out.print(n + " ");
			
			}
				
				System.out.println("]");
				sc.close();
				
		
			}
		
		
	}


 
package java0720;

import java.util.Arrays;
import java.util.Scanner;

public class ArrayModify {

	public static void main(String[] args) {

		String[] foods = {"치킨", "보쌈", "삼겹살", "피자"};
		System.out.println(Arrays.toString(foods));
		
		foods[1] = "짜장면";
		foods[0] = "핫도그";
		System.out.println(Arrays.toString(foods));
		
		
		// 배열의 인덱스 번호 탐색.
		
		Scanner sc = new Scanner(System.in);
		System.out.println("탐색할 음식명을 입력하세요: ");
		String food = sc.next();
		int idx;
				
		for(idx=0; idx<foods.length; idx++) {
			if(food.equals(foods[idx])) {
				System.out.println("탐색완료");
				System.out.println("인덱스 번호: " + idx);
				break;
			}
		}

		if(idx == foods.length) {
			System.out.println("입력한 음식을 찾을 수 없습니다.");
		}
	}
}
 
package java0720;
public class Breakexample1 {

	public static void main(String[] args) {
		
		for(int i=1; i<=10; i++) {
			
			if(i == 6) break; // 실행문장이 1줄로 끝나면 {}할필요 없음, i가 6이 되었을때 출력문이 나오기도 전에 바로 break 되버리기 때문에
5까지만 나옴 

			// break 대신 컨티뉴를 하면 한번만 건너뜀
			
			System.out.print(i + " ");
		}
		
		System.out.println("반복문 종료!");
		System.out.println("----------------------");
		
		
		for(int i=0; i<3; i++) {
			for(int j=0; j<2; j++) {
				if(i == j) break;       //바깥의 조건문은 그대로 흘러가니깐 0-0에서 멈추는게 아님
				System.out.println(i + "-" + j);
			} // end inner for
			
			if(i == 1) break;
			
		} // end outer for
		
		
		outer: for(char upper='A'; upper<='Z'; upper++) { // outer: 이름을 지어주는 것임
			
			for(char lower='a'; lower<='z'; lower++) {
				System.out.println(upper + "-" + lower); 
				if(lower == 'f') break outer; // 이름까지 넣어버리면 한번에 바깥과 안쪽 종료
			
			} //end inner for
		} // end outer for
		
	}
}
package java0720;
import java.util.Scanner;
public class Breakexample2 {

	public static void main(String[] args) {
		
		/*
		 # 무한루프
		 - 무한 루프는 반복문의 반복 횟수를 개발자가 정확히 사전에 인지하지 못하는 상황에서 주로 사용합니다.
		 - 특정 조건 하에서 반복문을 강제 종료하는 형태로 구성합니다.
		 - 무한루프는 일반적으로 while문을 사용하며,
		 while의 조건식 자리에 논리상수 true를 쓰면 무한루프가 구성됩니다.
		  */
		
		int i = 0;
		
		while(true) {
			if(i == 150) break;
			System.out.println(i);
			i++;
			
		}
		
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			
			System.out.println("숫자를 입력하세요.");
			System.out.println("그만 입력하시려면 0을 입력해주세요.");
			System.out.println("> ");
			int num = sc.nextInt();
			
			if(num == 0)
			
			System.out.println("입력하신 숫자는: " + num);
			System.out.println("무한루프 종료!");

		}
		}
}
package java0720;

import java.util.Scanner;

public class BreakQuiz {

	public static void main(String[] args) {

		/*
		 1. 두 수의 더하기를 맞추는 문제를 지속적으로 출제하는 프로그램입니다.
		 2. 2가지의 정수를 1 ~ 100사이의 난수를 발생시켜서 지속적으로 문제를 출제한 후 0을 입력하면 반복문을 탈출시키세요.
		 3. 종료 이후 정답 횟수와 오답 횟수를 각각 출력해 주세요.
		 
		*/	
			
		Scanner sc = new Scanner(System.in);
		
		System.out.println("덧셈 연산 문제입니다.");
		System.out.println("그만 하시려면 0을 입력해 주세요.");
		int cCount = 0;
		int aCount = 0;
		
		
		while(true) {
			
			int rn1 = (int) ((Math.random()*100) + 1);
			int rn2 = (int) ((Math.random()*100) + 1); // while 안에다가 써야 계속 새로운 변수가 발생한다.
			
			int num = (int) (Math.random()*2);
			int correct;  // 문제에 따라 정답을 저장할 변수를 if 밖에 선언.
					
					if(num==0) {
						
						System.out.printf("%d + %d = ???/n"
								, rn1, rn2);
						System.out.print("> ");
					}else {
						System.out.printf("%d + %d = ???/n"
								, rn1, rn2);
						System.out.print("> ");
						correct = rn1 + rn2;
					}
			
					int answer = sc.nextInt();
			
						
			System.out.printf("%d + %d = ???/n", rn1, rn2);
			System.out.print("> ");
			answer = sc.nextInt();
			correct = rn1 + rn2;
			
			if(answer == 0) {
				System.out.println("입력종료");
				break;
			} else if(answer == correct) {
				System.out.println("정답입니다!");
				cCount++;
			} else {
				System.out.println("오답입니다!");
				aCount++;
				
			}
			}
			
			System.out.println("=================");
			System.out.println("정답횟수: " + cCount + "회");
			System.out.println("오답횟수: " + aCount + "회");
			sc.close();
			
			
	
		
		
		}
		
		
				
		
	}

 
package java0720;

public class EnhancedForLoop {

	public static void main(String[] args) {

		
		String[] week = {"월","화","수","목","금","토","일"};
		
		for(int idx=0; idx<week.length; idx++) {
			System.out.println(week[idx] + "요일");
		}

		
		for(String day : week) {
			System.out.println(day + "요일");  // week를 받아주는 day를 만드는 것임 맞춰주는 것
			
		}
		
		
		System.out.println("------------------------------------");
		
		/*
		 1. scores라는 int 배열에 점수 데이터를 저장하세요.
		 ex) [98, 71, 85, 67, 100, 95]
		 2. 향상된 for문을 사용해서 총점과 평균을 출력하세요.
		 3. 평균은 double타입입니다. 소수점 둘째자리까지 출력하세요.
		 */
		
		int[] scores = {98, 71, 85, 66, 100, 95};
		
		int total = 0;
		for(int score : scores ) {
			total += score;
		}
		
		double avg = total / scores.length;
		System.out.printf("총점: %d점, 평균: %.2f\n", total, avg);
			}

}
package java0720;

import java.util.Scanner;

public class forquiz {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		/*
		 * 
		 * 구구단 출력문
		 * 
		 * - 구구단 단수를 스캐너를 통해 입력받으세요
		 * - 해당하는 단의 구구단을 1~9행까지 출력하세요.
		 * 
		 * ex.
		 * "구구단을 입력하세요: 4"
		 * "구구단 4단"
		 * 
		 * 4 X 1 = 4
		 * 4 X 2 = 8
		 * 
		 
		
		2. 스캐너를 사용해서 구구단을 출력한 것을 2~9까지의 범위를 사용한 난수를 발생시켜 랜덤 구구단으로 변경해보세요
		
		*/
		
		// Scanner sc = new Scanner(System.in);
		// System.out.println("단수를 입력하세요: ");
		// int dan = sc.nextInt();
		
		
		int dan = (int) ((Math.random() * 8) + 2);
		
		
		
		System.out.println("구구단 " + dan + "단");
		System.out.println("---------------------------");

		
		for(int hang=1; hang<=9; hang++) {
			System.out.printf("%d x %d = %d/n",dan, hang, dan * hang);
			
			
		}
		
		
		

			
			
			
		}
		
				
		
		
		
	}

 
package java0720;

public class loopnex {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		// 2~9단까지 구구단 전체 출력.
		
		for(int dan=2; dan<=9; dan++) {
			System.out.println("# 구구단 " + dan + "단");
			System.out.println("--------------------");
			
			for(int hang=1; hang<=9; hang++) {
				System.out.printf("%d x %d = %d/n", dan, hang, dan * hang);
				
			}
		System.out.println("--------------------");
		
			
		}
	}

}
 
package java0720;

import java.util.Scanner;

public class randomexample {

	public static void main(String[] args) {

		//난수(랜덤값)를 발생시키는 메서드 Math.random()
		//0.0이상 1.0미만의 랜덤 실수값을 가져옵니다.(double타입)
		
		
// double rn = Math.random();  <== 기본형
		
		// 1~10까지의 정수 난수를 발생시키고 싶어요.
		
		int rn = (int)((Math.random() * 10) + 1);
		
		
		// 로또의 범위 (1~45까지의 정수 난수)
		
		int rw = (int)((Math.random() * 45) + 1);
		
		int rn1 = (int) (Math.random()); //캐스팅 단축키 컨트롤+1
		
		
		
	
		
		
		
		
		System.out.println(rn1);
		System.out.println(rw);
		

	}

}
 
[0721]


import java.util.Arrays;
import java.util.Scanner;

public class a_test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		/*
		* 변경 전 정보: [피카츄, 라이츄, 파이리, 고부기, 버터풀]
				수정할 멤버의 이름을 입력하세요.
		
				
		Scanner sc = new Scanner(System.in);
		
		String name = sc.next();
		
		System.out.println("수정할 멤버의 이름을 입력하세요.");
		
		String[] = {"피카츄", "라이츄", "파이리", "꼬부기", "버터풀"}
		
		if(n = )
		String n = 
				
		
				*/
		
		Scanner sc = new Scanner(System.in);
		
		String[] pokemon = {"피카츄", "라이츄", "파이리", "꼬부기", "버터풀"};
		System.out.println("* 변경 전 정보: " + Arrays.toString(pokemon));
		System.out.println("수정할 멤버의 이름을 입력하세요");
		System.out.println("> ");
		String name = sc.next();
		
		int idx;
		for(idx=0; idx<pokemon.length; idx++) {
			if(name.equals(pokemon[idx])) {
				System.out.println(pokemon[idx] + "의 별명을");
				System.out.print("> ");

				pokemon[idx] = sc.next();
				
				// String reName = sc.next();
				// pokemon[idx] = reName;
			
				System.out.println("변경 완료!");
				System.out.println("* 변경 후 정보: " + Arrays.toString(pokemon));
				
			}
			if(idx == pokemon.length) {
				System.out.println("해당 이름은 존재하지 않습니다.");
				}
			}
		sc.close();
}
}
 
import java.util.Arrays;

public class b_example {

	public static void main(String[] args) {
		
		//배열요소 삭제
		
		/* 1. 지울 일단 인덱스번호 파악
		arr[3] = arr[4];
		arr[4] = arr[5];
		arr[5] = arr[6];  //마지막값은 중복된다 13으로
		int[] arr2 = new int[6]; //여기에 arr꺼 넣으면 될것
		 */
		
		int[] arr = {1, 3, 5, 7, 9, 11, 13};

		System.out.println(arr.length);
		
		for(int i=3; i<arr.length-1; i++) {
			arr[i] = arr[i+1];
		//arr = {1,3,5,9,11,13,13}
		}
		
		int[] temp = new int[arr.length-1];
		
		for(int j=0; j<temp.length; j++) {
			temp[j] = arr[j];
		}

		arr = temp;  // 배열 자체가 arr로 감
		temp = null; // 사라지게 만듦
		System.out.println(Arrays.toString(arr));
		
		
	}

}
 
import java.util.Arrays;
import java.util.Scanner;

public class c_ArrayDelete {

	public static void main(String[] args) {

		String[] pokemon = {"피카츄", "라이츄", "파이리", "꼬부기", "버터풀"};
		/*
		 1. 스캐너 객체를 생성해서 삭제하고픈 이름을 입력 받으세요.
		 2. 삭제를 진행한 후 삭제후 정보를 출력해 주세요.
		 */
		Scanner sc = new Scanner(System.in);
		System.out.println("삭제전 정보: " + Arrays.toString(pokemon));
		
		System.out.println("삭제하고자 이름을 적어주세요");
		System.out.print("> ");
		String delname = sc.next();
			
		int n;
		for(n=0; n<pokemon.length; n++) {
			if(delname.equals(pokemon[n])) {
				System.out.println(pokemon[n] + "를 삭제합니다.");
				
				for(int i=n; i<pokemon.length-1; i++) { //여기서 틀림
				pokemon[i]=pokemon[i+1];
				}
				break;
			}
		}

		if(n != pokemon.length) {
			String[] temp = new String[pokemon.length-1];
			for(int k=0; k<temp.length; k++) {
				temp[k] = pokemon[k];
			}
			pokemon = temp;
			temp = null;
			System.out.println("*삭제 후 정보: " + Arrays.toString(pokemon));
			
		} else {
			System.out.println("해당 별명은 존재하지 않습니다.");
		}
	}
}
 
public class d_MethodExample1 {
	/* 메써드는 클래스 블록 사이에다가 넣어주어야 함
	 # 메서드 (method)
	 
	  1. 코드의 모듈화 및 재활용성을 높이기 위해 사용합니다.
	  2. 메서드는 선언하는 과정과 호출하는 과정으로 나누어집니다.
	  3. 메서드 선언 메서드 내부에서는 불가능합니다.
	    - 새로운 메서드의 선언은 반드시 메서드 블록 외부, 클래스 블록 내부에서만 가능합니다.
	  4. 메서드 호출은 메서드 내부나 생성자 블록 내부에서만 가능합니다.
	    - 클래스 블록 내부에서는 메서드 호출이 불가능합니다.
	  5. 호출하는 과정은 메서드를 사용하는 과정이며, 해당 메서드가 필요로 하는 데이터(매개값)를 메서드 내부로 전달하면서
	          해당 메서드는 그 매개값을 통해 처리한 결과를 호출부로 다시 반환합니다.
	*/
	
	static int calcTotal(int x) {                
			// int: x에 값을 입력받는 메서드 반환(return)타입[매칭된다], static 쓴 이유: 메인메서드가 static이라서 바로 쓸라고..
		System.out.println("계산 기능을 수행합니다.");
		int total = 0;
		for(int i=1; i<=x; i++) {
			total += i;
		}
		return total;
	}
	
	public static void main(String[] args) {
		
		int result = calcTotal(10); // 메서드의 흐름에 따라서 1~10까지 더한 값을 total에 박아둔다.
		System.out.println(result);
		
		System.out.println(calcTotal(50));
		System.out.println(calcTotal(100));
		System.out.println(calcTotal(20));
		System.out.println(calcTotal(30));
		
	}

}
 
/*
 # 매개 변수(parameter, argument)
 
 1. 매개 변수는 메서드를 호출할 때 메서드 실행에 필요한 값들을 메서드 내부로 전달하기 위한 매개체 역할을 합니다.
 2. 메서드 호출부에서 어떤 매개값을 전달하느냐에 따라 메서드의 실행 결과가 달라집니다.
 3. 매개값을 몇개 전달받아 사용할지는 메서드를 선언할 때 선언부에서 ()안에 미리 갯수와 타입을 지정해야 합니다.
 4. 매개변수는 하나도 선언하지 않을 수 있으며, 이 때는 메서드 선언부의 () 내부를 비워둡니다. 그리고 호출시에도 ()를 비워서 호출합니다.
 */

public class e_MethodExample2 {

	//x~y까지의 누적 총합 구하기
	static int calcRangeTotal(int x, int y) {
		
		int total = 0;
		for(int i=x; i<=y; i++) {
			total += i;
		}
		return total;
	}
	
	static String selectRandomFood() {
		double rn = Math.random();
		if(rn > 0.66) {
			return "치킨";
		} else if(rn > 0.33) {
			return "족발";
		} else {
			return "삼겹살";
		}
	}
	
	static int calcNumberTotal(int[] nums) {  //nums는 변수 이름이다
		int total = 0;
		for(int n : nums) {
			total += n;
		}		
		return total;
	}
	
		
		
	public static void main(String[] args) {

		int result = calcRangeTotal(4, 7);   // 먼저 calcr 입력하고 컨트롤 스페이스 누르면 자동으로 만들어진다. 그후에 int
		System.out.println(result);
		
		System.out.println("오늘 점심 뭐먹지? -> " + selectRandomFood());  //매개값 없는 메소드
		
		//정수 n개를 전달하면 정수 n개의 총합을 리턴하는 메서드. <==매개변수 여러개 쓰는것 보다 배열 사용해야 할것임
		int[] arr = {10,20,30,40,50};
		
		int sum = calcNumberTotal(arr);
		System.out.println("sum의 값" + sum);
		
		sum = calcNumberTotal(new int[] {1,3,5,7});
		System.out.println("sum의 값: " + sum);
	}

}
 
/*
 # 반환값, 반환 유형 (return value, return type)
 
 1. 반환값이란 메서드의 실행결과값을 의미함
 2. 매개변수는 여러개 존재할 수 있지만 반환값은 오직 한개만 존재해야 합니다.(return)
 3. return이라는 키워드를 사용하여 return 뒤에 전달할 값을 지정합니다.
 4. 전달되는 값의 데이터 타입을 반환 유형이라고 하며 메서드를 선언할 때 메서드 이름 앞에 반드시 반환 유형을 명시해야 합니다.
 5. 반환값이 있는 메서드는 호출문이 하나의 값으로 처리되기 때문에 반환값을 다른 변수에 대입할 수 있고, 다른 메서드의 매개값으로도 사용이 가능합니다.
 6. 모든 메서드가 반환값이 있는 것은 아닙니다. 메서드 실행 후에 반환할 값이 없다면 return을 사용하지 않아도 됩니다.
 7. 이 때는 반환 유형을 메서드 선언시에 비워두면 안되고 반드시 void라는 키워드를 작성해 주셔야 합니다.
 8. 모든 메서드는 return을 만나면 강제로 메서드가 종료됩니다. 따라서 조건 없이 return문 아래에 코드를 작성할 수 없습니다.
 	void 메서드에서 return은 탈출 기능으로 사용합니다.
 */

public class f_MethodExmaple3 {

	static int add(int n1, int n2) {
		return n1 + n2;
// System.out.println("야~"); --> 여기서 출력 불가 (리턴이 끝이기 때문)
	}
	
	static int[] operateTotal(int n1, int n2){
		return new int[] {n1+n2, n1-n2, n1*n2, n1/n2};  //new 쓰는 이유: 없던거 새로 만들어야하니깐
	}
	
	static double[] calcArrayTotal(int[] nums) {
		int sum = 0;
		for(int n : nums) {
			sum += n;
		}
		double avg = (double)sum / nums.length;
		return new double[] {sum, avg};
	}
	
	// void 사례
	
	static void multi(int n1, int n2) {
		
		int result = n1 * n2;
		System.out.printf("%d x %d = %d\n", n1, n2, result);
	}
	
	// void 사례 2
	static void divide(int n1, int n2) {
		if(n2 == 0) {
			System.out.println("0으로 나누면 안돼요~!");
			return;
		}
		int result = n1 / n2;
		System.out.printf("%d / %d = %d\n", n1, n2, result);
	}
	
	
	public static void main(String[] args) {

			int r1 = add(3, 8);   // add(3,8) 이라는 값은 int r1 = 11; 과 같음
			System.out.println(r1);

// 			int r2 = add(10, 15);  int r2 = 25;
			int r2 = add(add(4,6), add(8,7));
	
	int[] totalResult = operateTotal(20, 5);
	System.out.println("20 + 5=" + totalResult[0]);
	System.out.println("20 - 5=" + totalResult[1]);
	System.out.println("20 * 5=" + totalResult[2]);
	System.out.println("20 / 5=" + totalResult[3]);
	
	/*
	 - 정수배열 하나를 전달받아 해당 배열 내부에 있는 모든 정수의 합계(int)와 평균(double)을 배열에 담아 리턴하는 메서드를 선언하고 호출하세요.
	 - 메서드 이름은 calcArrayTotal로 정의하겠습니다.
	 */
	 System.out.println("------------------------------");
	 int[] numbers = {57, 89, 78, 91, 93, 47};
	 double[] result = calcArrayTotal(numbers);
	 System.out.printf("합계 %d점, 평균: %.2f점\n", (int)result[0], result[1]);
		
	  multi(10,7);  // void 사례 결과  cf. [int r3 = multi(10, 5);] 이건 안됨 리턴이 없기 때문에 단순 출력 매서드이기 대문에 활용 못함
	               // 반환값이 없는 void타입의 메서드는 값이 돌아오지 않기 때문에 실행 결과를 변수에 저장할 수 없습니다.(반드시 단독 호출 사용)
	 
	 multi(add(3,1), add(6,3));  //얘는 출력됨
	 // add(multi(4,4), multi(5,5)); 얘는 안됨 반환값이 없기때문에 
	 
	 divide(10, 0);
	 
	 }
	}


 

public class g_MethodQuiz {

	static int sum(int n) {
		int total = 0;
		System.out.print(n + "의 약수:");
		for(int i=1; i<=n; i++) {
		if(n % i == 0) {
			System.out.print(i + " ");
			total += i; // 나누어 떨어지면 약수이므로, 합계에 누적.
		}
	}
	System.out.println();
	return total; 	
}
	
	
	public static void main(String[] args) {
		
		/*
		 - 매개값을 하나 받는 메서드를 정의하세요.
		 - 그 메서드는 매개값을 받아서 해당 정수의 약수를 가로로 모두 출력하고, 해당 값의 약수의 총 합을 구해서 결과값을 리턴하는 메서드 입니다.
		 
		 - 해당 메서드로 10의 약수의 총 합과 30의 약수의 총 합을 구해보세요.
		 */

		System.out.println("10의 약수의 총합: " + sum(10));
		System.out.println("======================");
		System.out.println("30의 약수의 총합: " + sum(30));
	}

}

관련글 더보기

댓글 영역