변수에 대해 공부하며 숫자 변환도 함께 한다. 숫자 변환 가장 많이 쓰이는것은 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 |