LoginSignup
0
0

BMIを計算する機能の実装

Last updated at Posted at 2024-02-03

参考にした記事

アップデートしたところ1

Labelの文字を非表示にする。

Simulator Screenshot - iPhone 15 Pro - 2024-02-02 at 15.43.26.png

【理由】
・BMIの計算結果が表示されている部分にLabelという文字列が出力されるのは、なんの出力かわかりにくい。
Simulator Screenshot - iPhone 15 Pro - 2024-02-02 at 15.21.17.png

手順

・Labelをダブルクリックし、テキストを編集してLabelという文字列を削除し、無記入にする。
--- or ---
・Labelをクリックし、Attributes Inspector(アトリビュート インスペクター)(右上の長方形が二つくっついてる所)で編集する。
スクリーンショット 2024-02-02 15.31.57.png
・クリックすると、編集画面が開く
スクリーンショット 2024-02-02 15.40.34.png

・LabelのTextを無記入にする。
スクリーンショット 2024-02-02 15.41.16.png
・結果
Labelが表示されなくなる
Simulator Screenshot - iPhone 15 Pro - 2024-02-02 at 15.43.26.png

アップデートしたところ2

BMI指数を出力後、肥満度を出力する。

Simulator Screenshot - iPhone 15 Pro - 2024-02-03 at 13.26.12.png

手順

・Labelを使って"あなたの肥満度"と記入する。
・肥満度レベルを表す文字列を表示をしたいのでLabelを使って"あなたの肥満度"の下あたりに
無記入のLabelを設置する。
・無記入のLabelをクリックし、controlを押しながらViewControllerに紐付けをする。
・コネクト名をjudgementに設定する。

全体のコード

//
//  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の計算エラー"
        }
    }
}


不安な解説した所

@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 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の計算エラー"
        }
    }
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0