티스토리 뷰
프로그램 코딩 목적
일반적으로 BMI 공식을 이용하여 출력하는 프로그램보다는,
신선한 여행 콘셉트로 나만의 차별화된 코드를 짜 보고 싶었다.
사람 수, 각자 키와 몸무게 입력 → BMI 여행을 위한 개인의 정보 입력 (ex 여권에 기재된 개인정보)
BMI 결과 출력 및 표준 몸무게까지의 차이 출력 → 표준 몸무게까지의 여정을 떠나는 듯한 느낌으로
// 사람 수, 각자 키와 몸무게를 입력하여 BMI, 표준 몸무게까지의 차이를 출력 (여행 콘셉트)
코딩 결과물
import java.util.Scanner;
public class BmiAnalysis {
public static void main(String[] args) {
double []height = null; // 각자 키 저장할 배열 변수
double []weight = null; // 각자 몸무게 저장할 배열 변수
boolean run = true;
Scanner goScan = new Scanner(System.in); // 값 입력받기 위한 scan 객체 생성
while(run) { //while문 시작
// 프로그램 제목 (여행 콘셉트)
System.out.println("------------------------");
System.out.println("우리의 bmi를 찾아 떠나는 우당탕탕 여행");
System.out.println("------------------------");
System.out.println("");
// BMI 출력할 사람 수 입력
System.out.print("bmi 여행을 떠날 사람의 수를 입력하시오 > ");
// 사람 수 저장할 변수 선언, int형 변수 입력받는 nextInt()
int personNo = goScan.nextInt();
// personNo(사람수) 만큼 배열 크기 설정
height = new double[personNo];
weight = new double[personNo];
// 각자 키 입력 명령
System.out.println("");
System.out.print( personNo + "명의 키를 입력하시오 > ");
// height 배열 안에 각자 키 저장 (double형 입력받는 nextDouble())
for (int i=0; i<height.length; i++) {
height[i] = goScan.nextDouble();
System.out.println("입력된 " + (i+1) + "명의 키 확인: " + height[i]);
}
// 각자 몸무게 입력 명령
System.out.println("");
System.out.print( personNo + "명의 몸무게를 입력하시오 > ");
// weight 배열 안에 각자 몸무게 저장 (double형 입력받는 nextDouble())
for (int i=0; i<weight.length; i++) {
weight[i] = goScan.nextDouble();
System.out.println("입력된 " + (i+1) + "명의 몸무게 확인: " + weight[i]);
}
// 'BMI 출력 결과' 시작문
System.out.println("");
System.out.println("-------------------------");
System.out.println("Bmi 결과");
System.out.println("-------------------------");
// BMI 수치에 따른 체중 분석 결과 출력
for (int i=0; i<personNo; i++) {
height[i] = height[i] / 100;
int bmiResult = (int)(weight[i] / (height[i] * height[i]));
if(bmiResult > 24.9 ) {
System.out.println((i+1)+ "은 bmi 결과, 비만입니다");
}
else if(bmiResult > 22.9) {
System.out.println((i+1)+ "은 bmi 결과, 과체중입니다");
}
else if(bmiResult > 18.5) {
System.out.println((i+1)+ "은 bmi 결과, 정상입니다");
}
else {
System.out.println((i+1)+ "은 bmi 결과, 저체중입니다");
}
} //for문 종료
// '정상 몸무게까지의 차이' 출력 시작문
System.out.println("");
System.out.println("-------------------------");
System.out.println("건강미 뿜뿜 정상 체중으로 가기 위한 발걸음");
System.out.println("-------------------------");
// 정상 몸무게까지의 차이, 감량 및 증량 권장문 출력 (평균 몸무게 공식 이용)
for(int i=0; i<personNo; i++) {
double avgWeight = (height[i] * height[i]) * 22;
int gap = (int)(weight[i] - avgWeight);
if(gap > 0) {
System.out.println((i+1)+ "은 정상 체중이 되기 위해 약 " + gap + "kg를 감량해야 합니다");
System.out.println("");
}
else {
System.out.println((i+1)+ "은 정상 체중이 되기 위해 약 " + gap * -1 + "kg를 증량해야 합니다");
System.out.println("");
}
} // for문 종료
// 로딩 중... 출력 (꾸미기)
System.out.println("º");
System.out.println("º");
System.out.println("º");
System.out.println("");
// 여행(프로그램) 종료 의사 묻기
System.out.print("여행을 종료하시겠습니까? (네 또는 아니오) > ");
// 의사 저장할 변수 선언 (String 입력받는 next())
String answer = goScan.next();
// 답변이 '네' 일 시 프로그램 즉시 종료
if(answer.equals("네") == true) {
System.out.print("<여행 종료>");
run = false;
}
// 답변이 '아니오' 일 시 프로그램 처음부터 (while(run)으로 무한반복
else if(answer.equals("아니오") == true) {
System.out.println("");
}
} // while문 종료
}
}
이번 코딩을 하며 얻게 된 것
1.
실무 과정에선 코드의 이해도를 높이기 위하여 적절한 주석을 다는 것이 중요하다고 생각한다.
(내가 작성한 코드를 다른 사람이 읽었을 때) 어떠한 목적의 코드인지, 몇 번째 줄은 어떤 결과를 내기 위한 것인지
알아보기 어렵게 코딩을 한다면 프로젝트가 순탄히 흘러가지 않을 위험이 있다.
이러한 점을 고려하여, 적절한 주석을 다는 등의 노력을 했다.
필수적인 것은 아니지만 주석의 위치 또한 예쁘게 일렬로 정리해 보았다.
열심히 짠 코드를 다른 사람도 쉽게 이해한다면 그만큼 뿌듯한 일이 또 어디 있겠나 싶었다.
2.
배열과 반복문
내가 프로그래밍 언어를 공부하면서 가장 어렵게 느꼈던 부분이기도 하다.
배열을 제대로 이해해야 포인터도 쉽게 이해할 수 있을 것 같다는 생각이 들었다.
배열과 반복문을 사용하여 코드를 짠다는 것 자체가 아주 큰 진입장벽이었지만,
직접 짜 보니 왠지 모를 자신감이 느껴졌다.
물론 프로그래밍의 세계는 넓고, 내가 아직 못 배운 부분도 넘쳐나겠지만 이대로만 의지를 가지고
더 열심히 한다면 꿈꾸던 개발자가 될 수 있지 않을까.
더 많은 것을 배우고 성장할 수 있는 계기를 만들고 싶었다.
공부한 것을 기록하는 과정에서 몰랐던 것을 배우고, 내가 잘못 알았던 것은 정정하는 식으로 it 분야에 대한 지식을 넓히고자 한다.
첫 게시물을 내가 가장 좋아하는 언어인 JAVA로 선택하고 공부하니,
JAVA에 대한 애정이 더욱 샘솟아나는 것 같다.
아자아자 파이팅

- Total
- Today
- Yesterday
- aiacademy
- SK텔레콤
- 코드업C언어
- 백준25304번
- 백준11382번
- 코드업기초100제
- bigdata
- mysuni
- 백준10430번
- 백준10951번
- 백준
- 코드업
- 코드업기초100제C언어
- skaidataacademy
- 백준10998번
- SK
- 백준10926번
- 백준25314번
- suni
- skmysuni
- Ai
- 백준10869번
- 프로그래밍 #프로그래밍언어 #자바 #JAVA #자바코딩 #개발자 #bmi프로그램 #bmi #파이팅
- 백준10807번
- SKTELECOM
- 백준2525번
- 백준2480번
- 백준18108번
- data
- sksuni
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |