오답노트 (Wrong Answer Note)

[오답노트] 9월 5주차

나수비니 2023. 10. 1. 15:30
728x90

 * 본 포스팅은 개인공부를 위한 오답노트입니다.

* This posting is an incorrect answer note for personal study.


정적 메소드 선언 시 주의할 점

public class Car {
	int speed;
	void run() {
		System.out.println(speed + "으로 달립니다.");
	}
	public static void main(String[] args) {
    	// speed = 60; 
		Car myCar = new Car();
		myCar.speed = 60;
		myCar.run();
	}
}

 

문제 정의

Static 메소드 선언 시, 내부에 인스턴스 필드 및 메소드 사용 불가

수정

new 연산자 사용해 객체를 생성한 후, 변수의 참조형태로 접근한다.


변수 초기화

//1부터 100까지 합 구하기 for
public class ForSumFrom1To100Example {
	public static void main(String[] args) {
		
		int sum = 0; //합을 저장할 sum 이라는 변수 초기화
	
		for (int i = 1; i<=100; i++) {
			sum += i; // sum 이라는 변수에 복합대입연산자 사용해서 i라는 변수를 계속 누적
			}
		System.out.println("1~100합" + sum );
	}
}

문제 정의

For문의 누적합이 입력되는 SUM 변수 값을 초기화하지 않았다.

수정

{1~5} 까지의 합을 구하고 싶다면, 합계는 1+2+3+4+5가 되어야 한다.

sum을 0으로 초기화하지 않고 sum+= i;를 입력하면 오류가 발생한다.

왜? 컴퓨터는 합계가 어떤 값으로 시작하는 지 알 수 없기 때문이다.

만약 sum 변수의 초기값이 1이라고 해보자. 그럼 합계는 1+1+2+3+4+5가 될 것이다.