質問編集履歴

1

コード化しました。

2020/06/21 10:12

投稿

nishika
nishika

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,50 @@
1
- BMI指数から「低体重」「普通体重」「肥満」のいずれかを判定し,,bmi.csvに書き込みたいです。 ファイルにはカンマ区切りで,名前,BMI指数,判定の順番に出力し.BIM指数が18.5未満→低体重、18.5以上25未満→普通体重、25以上→肥満 とbmi.csvnに書き込みたいです。 まだJavaを始めたばかりです。おそらく、 bw.write(name + "," + bmi + "\n");の部分に低体重、普通体重、肥満のいずれかの文字列を出力する変数をいれ、If文を使えば完成すると思うのですが、手がつきません。 teratailを初めて利用したの、見づらかったら申し訳ないです。
1
+ BMI指数から「低体重」「普通体重」「肥満」のいずれかを判定し,,bmi.csvに書き込みたいです。 ファイルにはカンマ区切りで,名前,BMI指数,判定の順番に出力し.BIM指数が18.5未満→低体重、18.5以上25未満→普通体重、25以上→肥満 とbmi.csvnに書き込みたいです。 まだJavaを始めたばかりです。 teratailを初めて利用したの、見づらかったら申し訳ないです。 
2
2
 
3
3
 
4
4
 
5
+ 私は
6
+
7
+ double bmi =0; //初期化
8
+
9
+ String dgree; dgreeを文字列する
10
+
11
+
12
+
13
+
14
+
15
+ if (bmi<=18.5){
16
+
17
+    dgree = "低体重";
18
+
19
+  }else if (bmi>18.5&&bmi<=25){
20
+
21
+ dgree = "普通体重";
22
+
23
+ }else(bmi>25){
24
+
25
+ degree = "肥満";
26
+
27
+ }
28
+
29
+
30
+
31
+ bw.write(name + "," + bmi + dgree +"\n");
32
+
33
+
34
+
35
+ を以下のプログラムに代入するのかなと考えています。 ただ変数スコープもうまく使いこなせていないのでどこにすれば記入すればいいか分かりません。加えて基礎も不十分なので私の考えの部分に訂正する課題があるのかと思います これ以外の方法もあると思いますが、If構文で導きたいです。
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
5
- import java.io.BufferedReader;
47
+ ```import java.io.BufferedReader;
6
48
 
7
49
  import java.io.BufferedWriter;
8
50
 
@@ -20,99 +62,105 @@
20
62
 
21
63
 
22
64
 
23
- public static void main(String[] args) {
65
+ public static void main(String[] args) {
24
66
 
67
+
25
68
 
69
+ try {
26
70
 
27
- try {
71
+ BufferedReader br = new BufferedReader(new FileReader("measure.csv")); //measure.csvから読み取る
28
72
 
29
- BufferedReader br = new BufferedReader(new FileReader("measure.csv"));
73
+ String line = br.readLine();//ファイルを一行ずつ読み取る
30
74
 
31
- String line = br.readLine();
75
+ String name; //名前
32
76
 
33
- String name;
77
+ int height; //身長
34
78
 
35
- int height;
79
+ int weight; //体重
36
80
 
37
- int weight;
81
+
38
82
 
83
+ BufferedWriter bw = new BufferedWriter(new FileWriter("bmi.csv")); //bmi.csvに書き込む
39
84
 
85
+ double bmi; //BMI
40
86
 
41
- BufferedWriter bw = new BufferedWriter(new FileWriter("bmi.csv"));
87
+ String dgree;
42
88
 
89
+
90
+
91
+
92
+
93
+ while(line != null){ //while構文 lineが何もないでない場合
94
+
95
+ StringTokenizer st = new StringTokenizer(line,",");//lineに入れられている文字列をカンマで分けて取得する
96
+
43
- double bmi;
97
+ name = st.nextToken();
98
+
99
+ height = Integer.parseInt(st.nextToken());//String型からint型に変換
100
+
101
+ weight = Integer.parseInt(st.nextToken());//String型からint型に変換
102
+
103
+
104
+
105
+ System.out.println(name); //画面に名前を表示
106
+
107
+ System.out.println(height); //画面に身長を表示
108
+
109
+ System.out.println(weight); //画面に体重を表示
110
+
111
+
112
+
113
+ bmi = weight / (((double)height / 100) * ((double)height / 100));
114
+
115
+ System.out.println(bmi); //BMIの計算
116
+
117
+
118
+
119
+ bw.write(name + "," + bmi + "\n"); //bmi.csvの画面に(名前、BMI、判定結果、改行)を表示
120
+
121
+
122
+
123
+ line = br.readLine(); //ファイルを一行ずつ読み取る
124
+
125
+
126
+
127
+ }
128
+
129
+
130
+
131
+ br.close(); //measure.csvからの読み取りを終了する
132
+
133
+ bw.close(); //bmi.csvへの書き取りを終了する
134
+
135
+
136
+
137
+ }catch(IOException e) { //例外を書く
138
+
139
+ e.printStackTrace()
140
+
141
+
142
+
143
+ }
144
+
145
+
146
+
147
+ }
148
+
149
+
150
+
151
+ }
152
+
153
+
44
154
 
45
155
 
46
156
 
47
157
 
48
158
 
49
- while(line != null){
50
-
51
- StringTokenizer st = new StringTokenizer(line,",");
52
-
53
- name = st.nextToken();
54
-
55
- height = Integer.parseInt(st.nextToken());
56
-
57
- weight = Integer.parseInt(st.nextToken());
58
-
59
-
60
-
61
- System.out.println(name);
62
-
63
- System.out.println(height);
64
-
65
- System.out.println(weight);
66
-
67
-
68
-
69
- bmi = weight / (((double)height / 100) * ((double)height / 100));
70
-
71
- System.out.println(bmi);
72
-
73
-
74
-
75
- bw.write(name + "," + bmi + "\n");
76
-
77
-
78
-
79
- line = br.readLine();
80
-
81
-
82
-
83
- }
84
-
85
-
86
-
87
- br.close();
88
-
89
- bw.close();
90
-
91
-
92
-
93
- }catch(IOException e) {
94
-
95
- e.printStackTrace();
96
159
 
97
160
 
98
161
 
99
162
 
100
-
101
- }
163
+ ```
102
-
103
-
104
-
105
- }
106
-
107
-
108
-
109
- }
110
-
111
-
112
-
113
- }
114
-
115
-
116
164
 
117
165
  参照
118
166