자바 기초

bitna's study note·2022년 3월 22일
0

자바

목록 보기
20/119

3월 22일 내용정리

1.참조형은 주소를 저장하고 있으며,
주소값을 가지고 찾아가 내용을 읽어들인다.
예) str=="홍길동" 에러가 뜬다. 왜? str은 주소값을 저장하고 있음
str.equals("홍길동"); 내용 비교가 됨
str이 가르키는 내용을 비교 하기 때문이다.

*어제내용복습 문제풀이

//문제를 먼저 보고 조건이 뭔지, 구해야 될게 뭔지 파악하고 종이로 로직을 먼저 그려본다.
		
		/*문7_2 컴퓨터와 사람이 가위,바위,보 게임
		 * 사람: 가위(1),바위(2),보(3)
		 * 컴퓨터:랜덤처리
		 * 사람과 컴퓨터 낸거 출력 및 승부 출력
		 * 1판이 끝나면 계속진행여부확인(진행'Y',취소'N')
		 */

		/*Scanner scan = new Scanner(System.in);
		while(true) {
			System.out.println("가위(1),바위(2),보(3) 입력하세요.");
			int person = scan.nextInt();
			int com=((int)Math.random()*3)+1;
			
			int x= person-com;
			
			switch(x) {
			case -1:
			case 2:System.out.println("컴퓨터 승리");
			break;
			
			case -2:
			case 1:System.out.println("당신 승리");
			break;
			
			case 0:System.out.println("비김");
			break;
			
			default:System.out.println("다시 입력하세요");
			continue;
			}
			
			System.out.println("당신은"+person+"냈습니다.");
			System.out.println("com은"+com+"냈습니다.");
			
			System.out.println("계속 진행 할까요? 예(0),아니요(9)");
			int restart = scan.nextInt();
			if(restart==0) continue;
			if(restart==9)  
				System.out.println("게임을 종료합니다.");
				break;
		}*/
		

2.메서드란?
공통적으로 쓰는 부분을 뽑아내서 묶어내어 이름표를 붙이고,
필요할때마다 이름 불러서 쓰는 구조를 '메서드'라고 한다.

package study_0322;

public class study_0322_01 {

	public static void main(String[] args) {
//공통적으로 쓰는 부분을 뽑아내서 묶어내어 이름표를 붙여 필요할때마다 이름 불러서 쓰는 구조를 '메서드'라고 한다.	
		
		
		System.out.println(hap(1,10)); 
		System.out.println(hap(10,100));
		System.out.println(hap(100,1000));

	}
	
	public static int hap(int su1, int su2) {
		int sum=0;
		for(int i=su1;i<=su2;i++) {
			sum+=i;
		}
		return sum;
	}
}

(1)메서드 흐름
메인클래스에서 hap메서드를 호출 -> hap(매개값1,매개값2)를 가지고
hap메서드로 감->hap메서드 식 계산->변수값에 결과값저장->
return을 만나 호출한 메인메서드로 결과값을 가지고 되돌아간다.

(2)식 설명
hap(1,10)->메서드변수명(매개값1,매개값2)
public static int hap(int su1, int su2)->
접근제어자 객체생성없이 리턴타입 메서드변수명(매개타입 매개변수명,매개타입 매개변수명)

static은 객제 생성없이 라는 의미로 먼저 메모리에 올려 놓는다.

만약, public static void hap(int su1, int su2) 를 썼다면,
여기서 void는 결과값을 메인메서드에 되돌려주지 않아도 된다.

return sum->호출한곳으로되돌아감 결과값변수명 을 가지고..
즉, 'return 변수명'은 메서드 내부식 처리후 '변수명으로 값을 돌려줄께'

메소드 안에 return만 있으면 break; 와 비슷하여 밑에 있는 문장은 실행 안됨

(3)지역변수
int su1,int su2,int sum 지역변수이며, 블럭내에서만 활동하는 변수로
블럭밖에서는 활동 못함.에러남.

package study_0322;

public class study_0322_02 {

	public static void main(String[] args) {
		
		printScore(99);
		printScore(120);

	}
	
	public static void printScore(int score) {
		if(score<0 || 100<score ) {
			System.out.println("잘못된 점수입력:"+score);
			return; //메서드내에 break; 와 같은 기능이며,
			//void 가 있어서 메인메서드에 결과값을 되돌려 주지 않아서
			//메인메서드에서 결과를 실행안한다.의 의미
		}
		System.out.println("점수입력:"+score);
	}

}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글