質問失礼します。
クエストリングについて勉強しております。
フォームで入力できる値
・total ... 購入した商品の総額
・count ... 購入した商品の数量
・type ... 商品種別
(type の数値は, 1 が「雑貨」,2 が「生鮮食品」, 3 が「その他」)
▼処理内容
1.total,count,type の値を取得し,値が画面に表示される
※typeは数字ではなく,対応する商品種別が表示される様にしましょう
2.商品の単価が画面に表示される
3.商品購入総額に応じてポイントを計算し,その値が画面に表示される
※ポイントは商品購入総額を基準にして,以下の様に算出する
3000 円未満 ... 0%
3000 円以上で5000円未満 ... 購入総額の 4%
5000 円以上 ... 購入総額の 5%
実際にプログラミングを組んだのがこちらです。
<html> <head> <meta charset="UTF-8"> <title>クエリストリング</title> </head> <body> <br> <form action="query_string.jsp" method="get"> 総額:<br> <input type="number" name="total">円<br> 数量:<br> <input type="number" name="count">個<br> 商品種別:<br> <input type="radio" name="type" value="1">1.雑貨<br> <input type="radio" name="type" value="2">2.生鮮食品<br> <input type="radio" name="type" value="3">3.その他<br> <br> <input type="submit" value="送信"><br> </form> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>クエリストリング</title> </head> <body> <% request.setCharacterEncoding("UTF-8"); String total = request.getParameter("total"); String count = request.getParameter("count"); String type = request.getParameter("type"); out.print(total+"円"); out.print(count+"個"); out.print(type+"を購入します"); %> 今回獲得ポイント: <% int i= Integer.parseInt(request.getParameter("total")); if(i <= 3000){ out.print("0ポイント"); }else if(i > 3000 && i <= 5000){ out.print(i *0.004 +"ポイント"); }else if(i > 5000){ out.print(i *0.005 +"ポイント"); } %> </body> </html>
出力結果がこちらです。
![
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
![
入力では総額4000円×2で8000円です。
ですが、受取先には4000円しか反映されてなく、16ポイントしか取得出来ていません。
こちらを正しく計算し、ポイントも受け取れるようにしたいのですがどうすればいいのでしょうか?
おそらくfor文だと考え、プログラミングを構築しましたが実力不足につき上手く起動できませんでした。
宜しければご教授お願い致します。