수업 복습

복습 함수

_김영인 2025. 10. 18. 23:24

괄호가 있으면 함수

출력함수 ex) System.out.println(“”);
입력함수 ex) int num = new Scanner(System.in).nextInt();
 
함수 3요소 == (java 에서는) 메서드 시그니처
함수는 주어가 없으면 함수 객채와 무관하게 쓰이면 함수
객체에서 객체를 주어로 갖고 쓰이는 함수를 메서드
 
인풋 매개변수 파라미터 arguments 인자 인수 입력값
아웃풋 출력값 결과값 return 반환값 리턴값
기능 함수명은 기능을 유추할 수 있어야 한다.
 
임의의 4형
 
 
씨언어나 예전언어는 함수를 위에다가 세팅
접근제어자 static 반환 함수명(인자) {} 함수 기본형식
보통 static 이 붙어있으면 함수 붙어 있지 않으면 매서드 
 

package class02;

 

import java.util.Scanner;

 

class Student {

String name;

int score;

 

Student(String name,int score){

this.name=name;

this.score=score;

}

 

void printInfo() {

System.out.println(this.name+" 학생은 "+this.score+"점입니다.");

}

 

// setter : 멤버의 값을 변경하는 메서드

// input O output X

// void setXxx(input)

void setName(String name) {

this.name = name;

}

void setScore(int score) {

this.score = score;

}

}

 

public class Test01 {

public static int checkNum(int index) { // 2. 함수외부에서 값 받아오기

Scanner sc=new Scanner(System.in); // 1. 함수내에서 직접 선언

int num; // 유효범위(scope) 이슈

while(true) { // 유효성 검사

System.out.print("학생의 번호입력 >> ");

num = sc.nextInt();

if(1<=num && num<=index) { // 종료조건

break;

}

System.out.println("다시 입력해주세요!");

}

return num-1;

}

 

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

 

Student[] datas = new Student[3];

int index = 0; // 현재 배열에 저장된 학생의 수

datas[index++] = new Student("티모",90); // 샘플 데이터

datas[index++] = new Student("모르가나",65);

 

while(true) {

System.out.println("----------");

System.out.println("1. 전체출력");

System.out.println("2. 학생이름변경");

System.out.println("3. 학생점수변경");

System.out.println("4. 학생추가");

System.out.println("5. 번호검색"); // 1명출력

System.out.println("6. 이름검색");

System.out.println("7. 성적검색");

System.out.println("8. 1등출력");

System.out.println("0. 프로그램 종료");

System.out.println("----------");

System.out.print(">> ");

int command = sc.nextInt();

 

if(command<0 || 8<command) { // 유효성 검사

System.out.println("잘못된 입력입니다!");

continue;

}

 

if(command == 0) { // 무한루프 + 종료조건

System.out.println("프로그램 종료");

break;

}

else if(command == 1) {

if(index <= 0) {

System.out.println("출력할 학생이 없습니다!");

continue;

}

 

for(int i=0;i<index;i++) {

datas[i].printInfo();

}

}

else if(command == 2) {

int num = checkNum(index);

 

System.out.print("변경할 이름입력 >> ");

String name=sc.next();

 

datas[num].setName(name);

 

System.out.println("변경완료!");

}

else if(command == 3) {

int num = checkNum(index);

 

System.out.print("변경할 점수입력 >> ");

int score=sc.nextInt();

 

datas[num].setScore(score);

 

System.out.println("변경완료!");

}

else if(command == 4) {

System.out.print("추가할 학생의 이름입력 >> ");

String name=sc.next();

 

System.out.print("추가할 학생의 성적입력 >> ");

int score=sc.nextInt();

 

datas[index++]=new Student(name,score);

 

System.out.println("학생 추가 완료!");

}

else if(command == 5) {

int num = checkNum(index);

 

datas[num].printInfo(); // 응집도 높임

}

else if(command == 6) {

System.out.print("검색어 입력 >> ");

String keyword = sc.next();

 

boolean flag = false;

 

for(int i=0;i<index;i++) {

if(datas[i].name.contains(keyword)) {

datas[i].printInfo();

flag = true;

}

}

 

if(!flag) {

System.out.println("검색결과가 없습니다!");

}

}

else if(command == 7) {

System.out.print("검색할 성적입력 >> ");

int score = sc.nextInt();

 

boolean flag = false;

 

for(int i=0;i<index;i++) {

if(score <= datas[i].score) {

datas[i].printInfo();

flag = true;

}

}

 

if(!flag) {

System.out.println("검색결과가 없습니다!");

}

}

else if(command == 8) {

// 최대값 찾기 알고리즘

 

int max = datas[0].score;

int maxIndex = 0;

 

for(int i=1;i<index;i++) {

if(max < datas[i].score) {

max = datas[i].score;

maxIndex = i;

}

}

 

System.out.println("1등은 "+(maxIndex+1)+"번학생 "+datas[maxIndex].name+"입니다.");

 

//////////

 

max = datas[0].score;

for(int i=1;i<index;i++) {

if(max < datas[i].score) {

max = datas[i].score;

}

}

 

for(int i=0;i<index;i++) {

if(datas[i].score == max) {

datas[i].printInfo();

}

}

}

}

}

 

 

타자연습 코드 따라치기

'수업 복습' 카테고리의 다른 글

Java interface 복습  (0) 2025.10.26
Java Thread & MVC  (0) 2025.10.24
복습 Java 이론  (0) 2025.10.20
간이 팀프로젝트 (주민 상호작용 프로그램 구현)  (0) 2025.10.16
Day1(OT + java 기초)  (0) 2025.09.19