BMIを計算する機能の実装

# 参考にした記事
https://satoriku.com/app-dev-stepbmi/

# アップデートしたところ1
# Labelの文字を非表示にする。
![Simulator Screenshot - iPhone 15 Pro - 2024-02-02 at 15.43.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/97620cfe-c8ea-83f9-398c-5b138c9991d2.png)

【理由】
・BMIの計算結果が表示されている部分にLabelという文字列が出力されるのは、なんの出力かわかりにくい。
![Simulator Screenshot - iPhone 15 Pro - 2024-02-02 at 15.21.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/3ab5bc04-d844-2709-7ed8-8f274bad4333.png)

# 手順
・Labelを**ダブルクリック**し、テキストを編集してLabelという文字列を削除し、無記入にする。
--- or ---
・Labelを**クリック**し、Attributes Inspector(アトリビュート インスペクター)（右上の長方形が二つくっついてる所）で編集する。
![スクリーンショット 2024-02-02 15.31.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/3022b735-58cd-f27a-aee8-c9f8cd457477.png)
・クリックすると、編集画面が開く
![スクリーンショット 2024-02-02 15.40.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/52ddba84-f0f0-3c5c-d3ad-fb16f289fcc5.png)

・LabelのTextを無記入にする。
![スクリーンショット 2024-02-02 15.41.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/2aa615ca-0323-956d-1d78-8388e0869641.png)
・結果
Labelが表示されなくなる
![Simulator Screenshot - iPhone 15 Pro - 2024-02-02 at 15.43.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/97620cfe-c8ea-83f9-398c-5b138c9991d2.png)

# アップデートしたところ2
# BMI指数を出力後、肥満度を出力する。
![Simulator Screenshot - iPhone 15 Pro - 2024-02-03 at 13.26.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2823837/9ac41f89-1484-5f33-d2b9-681396e3fd00.png)
# 手順
・Labelを使って"あなたの肥満度"と記入する。
・肥満度レベルを表す文字列を表示をしたいのでLabelを使って"あなたの肥満度"の下あたりに
無記入のLabelを設置する。
・無記入のLabelをクリックし、controlを押しながらViewControllerに紐付けをする。
・コネクト名をjudgementに設定する。
# 全体のコード
```Swift
//
//  ViewController.swift
//  BMICalculator
//
//  Created by emi oiso on 2024/02/01.
//

import UIKit

class ViewController: UIViewController {
    @IBOutlet var heightTextField: UITextField!
    @IBOutlet var weightTextField: UITextField!
    @IBOutlet var bmiLabel: UILabel!
    @IBOutlet var judgement: UILabel!
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        heightTextField.placeholder = "身長をcmで入力してください。"
        weightTextField.placeholder = "体重をkgで入力してください。"
    }
    
    @IBAction func calculationBtnAction(_ sender: Any) {
        let doubleH = Double(heightTextField.text!)
        let doubleW = Double(weightTextField.text!)
        bmiLabel.text = calculation(height: doubleH!, weight: doubleW!)
    
        //BMIの計算結果をresultに代入
        let result = calculation(height: doubleH!, weight: doubleW!)
        //ここもわからなかった
        // BMIの計算結果をもとに肥満度を判定
        //setObesityLevelの関数にresultの数値を使いたいから引数にresultを指定する。
        setObesityLevel(bmi: result)
    }
   
    //BMIの計算をしている
    func calculation(height:Double,weight:Double) -> String {
        let h = height / 100
        let w = weight
        var result = w / (h * h)
        result = floor(result * 10) / 10
        return result.description
    }
    
    //BMIの数値によって肥満度を出力する
    func setObesityLevel(bmi: String) {
        
        if let bmiValue = Double(bmi) {
            if bmiValue < 18.5 {
                judgement.text = "低体重"
            } else if bmiValue < 25 {
                judgement.text = "普通体重"
            } else if bmiValue < 30 {
                judgement.text = "肥満（1度）"
            } else if bmiValue < 35 {
                judgement.text = "肥満（2度）"
            } else if bmiValue < 40 {
                judgement.text = "肥満（3度）"
            } else {
                judgement.text = "肥満（4度）"
            }
        } else {
            // エラーハンドリング: BMIが数値に変換できない場合
            judgement.text = "BMIの計算エラー"
        }
    }
}


```
# 不安な解説した所
```swift
@IBAction func calculationBtnAction(_ sender: Any) {
        let doubleH = Double(heightTextField.text!)
        let doubleW = Double(weightTextField.text!)
        bmiLabel.text = calculation(height: doubleH!, weight: doubleW!)

        //ここわからない
        //BMIの計算結果をresultに代入
        let result = calculation(height: doubleH!, weight: doubleW!)
        //ここもわからなかった
        // BMIの計算結果をもとに肥満度を判定
        //setObesityLevelの関数にresultの数値を使いたいから引数にresultを指定する。
        setObesityLevel(bmi: result)
    }
```
```swift
//BMIの数値によって肥満度を出力する
    func setObesityLevel(bmi: String) {
        //bmiValueにdouble型にした数値をbmiValueに代入して
        //数値によって肥満度を文字列で出力する。
        if let bmiValue = Double(bmi) {
            if bmiValue < 18.5 {
                judgement.text = "低体重"
            } else if bmiValue < 25 {
                judgement.text = "普通体重"
            } else if bmiValue < 30 {
                judgement.text = "肥満（1度）"
            } else if bmiValue < 35 {
                judgement.text = "肥満（2度）"
            } else if bmiValue < 40 {
                judgement.text = "肥満（3度）"
            } else {
                judgement.text = "肥満（4度）"
            }
        } else {
            // エラーハンドリング: BMIが数値に変換できない場合
            judgement.text = "BMIの計算エラー"
        }
    }
```