반응형

안녕안녕!

오늘도 알이 꽉찬 정보를 전해줄건데

어제 포스팅한 변수에 이은 상수를

소개해줄게!

 

c#에서는 const

Java에선 final

php에서는 define

python에서는 없고

 

기타 등등.. 어쨋든..

말이 다 다르긴하지만

 

상수! 라는 개념은 알아야해!

그럼 간단히 알아 볼까?


상수는 constant 라고해

final valueable이라고 하지 않아

 

변수 = 값(데이터)를 담는 그릇이라고 했지?

그렇다면 상수는?

 

상수 = 값(데이터)를 담는 그릇이야

 

 

 

 

 

사실 둘다 값을 담는 그릇인건데

 

차이를 간단히 설명해 주자면

변수는 프로그램이 실행이 ->  값이 변함

상수는 프로그램이 오조오억번 실행이 되도 -> 값이 안 변함

 

이렇게 정의를 내려줄 수 있어

 

그런 애를 어디에 쓰이냐구 ?

 

그래서 코드를 가져왔다 이마리야


package project;
import java.util.Scanner;
import java.text.DecimalFormat;

public class OilStation {
    
    public static void main(String[] args) {
        
        // 상수 가솔린 선언
        final double GASOLINE;
        int liter;
        double cost;
        
        //상수값 1527.51     
        GASOLINE  = 1527.51;    
            
        //사용자로부터 값을 입력 받을 수 있는 Scanner
        Scanner scan = new Scanner(System.in);
        
        System.out.println("휘발유 얼마나 넣을건지 말하란 말이야!");
        System.out.print(" 리터(L) : ");
        
        //입력받은 리터수를 liter 변수에 대입시켜주고
        liter = scan.nextInt();
        
        //상수 가솔린 * 변수 리터의 값을 cost에 넣어줘
        cost = GASOLINE * liter;
        
        //이건 크게 신경쓰지 않아도 되지만, 숫자가 길어질 수 있으니, 콤마를 표현하기로 했어
        DecimalFormat comma = new DecimalFormat("###,###,###,###");
        String bill = comma.format(cost);
        
        // 최종 금액 출력
        System.out.println("기름 값은" + bill + "원 이얍 돈내랏");
    }
}

워우

 

오늘은 평소보다 코드가 많은것같지?

주석 처리를 해서 설명을 좀 보탰어

 

결과는? 

 

 

 

즉, 휘발유 값은 리터당 1527.51원으로 지정해두고

사용자에게 리터값을 받아서

 

리터당 휘발유 값 * 리터

이렇게 결과값을 도출한거야

만약 일반 변수로 썼는데
값이 변경되어버리면
문제가 될수 있잖아?

만원짜리를 중간에 값이 바뀌어서
백원에 1000개를 팔았다 생각해봐

구매자는 신이나고

사장은 눈물나고
사원은 살떨리는거거든

일반 변수 처리로
발생될 수 있는 문제를
상수가 막아줄 수 있어!


상수를 선언하는 법

 

final double GASOLINE;

 

이렇게 상수를 선언해 줬어

변수와는 다르게 앞에

final이라는 키워드가 붙지!

변수 선언이랑은 final 빼고 다를게 없지?


상수 식별자 규칙

 

변수는 소문자로 시작해서

2개의 키워드 이상 조합 시, 

두번째 키워드부터 첫글자들 대문자로 써줘

phoneNumber 처럼 말이야

 

근데 상수는 무적권!! 

대문자야

그래서 GASOLINE이라고 적어주었어


사용 시, 주의점

 

상수는 위에도 말했듯이

프로그램이 진행되는 동안

저!!!!얼때 변하지 않는 수야

 

 

 

이게 프로그램을 짜다 보면

"상수라 고맙습니다!"

 

해야할 때가 있어

 

    public static void main(String[] args) {
        
        final int PRICE;
        
        PRICE = 1000;
        
        System.out.println(PRICE);
        
    }

이렇게 PRICE라는 상수를 정의해주고

거기에 1000이라는 숫자를 넣어줬어

 

그 결과를 출력하면?

 

 

 

이렇게 1000이라는 결과가 나오는데

 

여기서 잠깐 소스를 바꿔볼게

 

package project;
public class Main {
    
    public static void main(String[] args) {
        
        final int PRICE;
        
        PRICE = 1000;
        
        PRICE = 2000;
        
        System.out.println(price);
        
    }
}

 

상수에 1000을 넣었다가 다시 2000을 넣어봤어

 

결과는 어떻게 될까?

 

 

말해뭐해! 당연 에러지!!ㅋㅋ

 

 

에러문을 볼까?

 

Main.java:10: error: variable PRICE might already have been assigned

 

" 너! 10번째줄 코드에 PRICE있지? 거기에 이미 값 넣었잖아!"

이렇게 컴퓨터가 내게 친절히 말을 해줘

 

즉, 밑장빼기 금지


오늘은 상수에 대해서 배워봤어

 

정의도 해보고 값도 넣어보고

예제도 써봤지

 

솔직히 프로그래밍 공부?

즐기지 않고선 재미없는게 사실이야

 

국어 시간때 안자본 사람있어?

난 국어시간만 되면 잠옷입고 싶어했거든

 

이것도 언어인지라, 심지어 위대한 한글도 아닌

영어인지라 더 힘들 수도 있지만!

 

함께 재미있게 배워갔으면 좋겠어!

 

혹시나 이상한 부분이 있다거나

말도 안된다!! 싶은게 있다면 

 

 

 

아래 댓글로 남겨줘!!

 

package project;
public class Main {
    
    public static void main(String[] args) {
        
        final int BYE;
        
        BYE = 20000;
        
        System.out.println("그럼" + BYE + "!!");
        
    }
}

 

 

 

반응형