본문 바로가기

콤퓨타/Programming) 왕초보 자바

04. (Variables) Converting Temperatures

변수에 대해 공부하며 숫자 변환도 함께 한다. 숫자 변환 가장 많이 쓰이는것은  temperature 섭씨화씨. 

 

public class App {
	
	public static void main(String[] args) {
		
		
		double fahrenheit = 91; 
		double celcius = (fahrenheit - 32) * 5.0/9.0;
		
		System.out.println(celcius);
		System.out.println(fahrenheit + " degrees Fahrenheit is " + celcius + " degrees celsius.");

		double celci = 32; 
		double fahren = (celci * 9/5) + 32;
		
		System.out.println(fahren);
				System.out.println("When the Celsius is " + celci + "degree, the Fahrenheit is " + fahren + "degree.");
	
				double kilogram = 70; 
				double pound = kilogram *  2.205; 
				System.out.println(kilogram + "kg convert to pound is " + pound + "lb");
				System.out.println("So if you lift 100 kg, you are lifting " + 100*2.205 + "lb.");
 
	
				double kilometer = 30; 
				double mile = kilometer / 1.609; 
				System.out.println(kilometer + "km convert to mile is " + mile + "mi.");
				
				double liter = 1; 
				double poundLiquid = liter * 2.2; 
				System.out.println(liter + "l convert to pound is " + poundLiquid + "lb.");
				
	}

}

 

 

 

하다보니 km-> mile , kg -> lb, liter->pounds(lb) 도 실용적일 것 같아서 한번 프로그래밍 해보기로 함.

하지만 하다보니 계속 욕심이 생겨서 if 문을 쓰다가 while문을 쓰다가 결국엔 폭망 ^^ 

import java.util.Scanner;

public class practice02 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("km를 ml로 변환합니다. 기준이 되는 숫자를 입력하세요. (소숫점 2자리까지)");
		String kmStr = scanner.nextLine();
		double km = Double.parseDouble(kmStr);
		double kmtomi = km * 0.62;
		System.out.println("입력하신 " + kmStr + "km는 mile로 환신 시 " + kmtomi + "mi 입니다. \n (Enter키를 누르세요...) ");
		scanner.nextLine();

		String answer;
		while (true) {
			answer = scanner.nextLine();
			System.out.println("**고객 만족도 조사** 답변에 만족하시나요? ('예' 혹은 '아니오'로 답변해주주세요.");

			if (answer.equals("예")) {
				System.out.println("헤헿... 역쉬 써보길 잘했쬬?");
				break;
			}

			else if (answer.equals("아니오")) {
				System.out.println("ㅠㅠㅠ 더욱 정진하겠습니다 흐규규규휴ㅠㅠㅠ");
				break;
			}

			else {
				System.out.println("예 아니오로만 답변 해주시지 말입니다? ");
			}

		}
	}

}

 

 

 

하다보니 계속 보이는 야네 둘

String kmStr = scanner.nextLine();
double km = Double.parseDouble(kmStr);

 

역시 프로그래밍은 그냥 냅다 해보는게 제일이지만 얘는 여러번 봐도 잘 모르겠어서 별도로 파봄. 

 

Double.parseDouble

Scanner.nextLine()은 사용자가 입력하는 내용을 프로그램이 받아주는것인데, 

얘네는 문자열(String) 만 받는다. 

하지만 만약 숫자를 받아야 한다면? double이나 int써야 하므로 문자열만 받는 Scanner.nextLine()에 입력될 수 없다. 

그래서 그 숫자를 문자열처럼 변환해주는것이 Double.parseDouble() 이다. 일종의 어뎁터라고 보면 되겠다.

 

아, 문송이에게 이게 헷갈리는 이유는 사용자 입장에서는 불필요한 문법이기 때문이다.

결론적으로 이 문법은 출력했을때는 문자인지  숫자인지 구분하는것이 불필요하겠지만, 

컴퓨터 입장에서는 처리 방식이 달라지기 때문에 문자인지 숫자인지 구분해야한다. 

결론적으로 이 코드는 컴퓨터가 읽어내고 이해하는 내용을 담은것이지 출력 후 내용을 살펴 볼 사용자에게는 전혀 상관이 없다.  문송씨는 후자형 인간이므로 이게 왜 필요한지 한참을 광광.... ^^ 

 

 

✅ 아래 코드는 숫자가 들어가서 double 타입으로 변수는 num1, num2로 지정 해줌

import java.util.Scanner;

public class pratice03 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.println("첫 번째 숫자를 입력하세요: ");
		String num1Str = scanner.nextLine();
		double num1 = Double.parseDouble(num1Str);

		System.out.println("두 번째 숫자를 입력하세요: ");
		String num2Str = scanner.nextLine();
		double num2 = Double.parseDouble(num2Str);

		double sum = num1 + num2;
		System.out.println("입력하신 숫자의 총 계는: " + sum + "입니다.");

		scanner.close();

	}

}

 

 

✅ 아래 코드는 그냥 숫자 int 쓰고 변수는 nextAge  넣어줌

import java.util.Scanner;

public class practice04 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		System.out.println("당신의 나이를 숫자로 입력하세염");
		String ageStr = scanner.nextLine();
		int age = Integer.parseInt(ageStr);

		int nextAge = age + 1;
		System.out.println("내년에는 " + nextAge + "세가 되시겠군요!");

		scanner.close();

	}

}

 

 

✅ 마지막 연습, 

double 타입 사용하고 변수는 heightCm, heightM, bmi 

import java.util.Scanner;

public class practice05 {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
				
				System.out.println("체중(kg)을 입력하세요: ");
		double weight = Double.parseDouble(scanner.nextLine());
	
		System.out.println("신장(cm)을 입력하세요: ");
		double heightCm = Double.parseDouble(scanner.nextLine());
		double heightM = heightCm / 100; 
		
		double bmi = weight / (heightM * heightM);
		System.out.println("당신의 BMI는 " + bmi + "입니다.");

		scanner.close(); 
	}

}

 

 

후. 이제 이해했을까? 

계속 하다보면 감이 오는것도 있고, 

아 이건 그냥 냅다 쓰자 이렇게 하고 넘어가는것도 있다. 

근데 이건 왜 해도 해도 모르겠지?.... ^^ㅎ 

신나고 재미나는 프로그래밍의 세계 ✨ ✨ ✨ ✨

'콤퓨타 > Programming) 왕초보 자바' 카테고리의 다른 글

05. (Strings) Joining Strings  (2) 2025.06.04
(번외) 프로세스  (5) 2025.05.29
03. (Variables) Assigning Variables  (1) 2025.05.28
02. (Variables) Integer  (1) 2025.05.23
01. hello world  (0) 2025.05.23