質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

3回答

968閲覧

記述コードの違いによる意図。※動作に違いはありません。

Aspiration

総合スコア6

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2021/06/17 05:51

編集2021/06/17 05:53

表題の通り、
どちらも動作自体に変化はないです。

下記コードの②について、
どの様な意図があると思いますか。
※1:書物による勉強の為、このコードを書いた人に意図はきけません
※2:必要のないコードは載せていません。
→全てのコードを記載しろとの指摘はご遠慮願います
※3:私も人間です。横暴と思われる返答文の場合大変恐れ入りますが無視します。

-----【私の認識】-------
取得してくる行
加算する行
をそれぞれ分けた方が可読性が上がる?
という事でしょうか


-----【処理の流れ】-------

今ある「いいね」の数をget()メソッドで取得
それに1を加えてcount変数に代入
そのカウント変数をset()メソッドでプロパティに入れる


java

1 //①いいねを加算 2 int count = siteEV.getLike() + 1; 3 siteEV.setLike(count); 4 5 //②いいねを加算 6 int count = siteEV.getLike(); 7 siteEV.setLike(count + 1 ); 8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/06/17 05:59

一つお聞きしたい、 ①と②が別解のように書いてあったって事ですか?
m.ts10806

2021/06/17 06:03

「回答者の追記修正依頼はすべて排除する」というご自身の横暴は許して良いのでしょうか。 意図を聞くなら本気でコード全体ないと他人には答えられません。 一部だけでどうしろと。 他人を頼ることを決めた以上は必要な情報は自分で決めるものではありません。見る人が判断します。
m.ts10806

2021/06/17 06:05

それに書籍であっても出版社含め作者にアプローチする術は幾らでもあるし、もし間違ってる内容なら間違ってる内容でお金取ってるわけですから指摘する必要がある。 その補足は言い訳を列挙しただけで本気で解決したい人の投稿には見受けられません。
Aspiration

2021/06/17 06:06

>K_3578 様 いえ、別解の様に記載はしておりません。 ②が記載されている内容です。 ①が私が作成したコードです。
Aspiration

2021/06/17 06:10 編集

>m.ts10806 以前の質問でもお答えした様にあなたからの返答は求めておりません。 質疑応答の中でコードが追加で必要に感じれば勿論記載します。 そして現状、全く必要性は感じません。 ゆえにあなたの言葉遊び(ご自身の横暴は…など)に付き合うつもりもございません。 ブロック機能がないので次回よりあなたの返答は完全に無視いたします。
TakaiY

2021/06/17 06:28

もったいないなぁ というのが感想です。
K_3578

2021/06/17 06:32 編集

この部分だけで考えるなら完全に好みになると思うので既に出ている回答を私は全面的に支持します。 >※2:必要のないコードは載せていません。 ちょっとこれが気になったのでコメントさせてください。 エラーが出ているというような質問なら再現可能ならばミニマムコードで良いと思いますけど、 こういうどちらが良いか、という判断に関しては現状質問者さんが理解されているように、 どちらも同じ結果を出すのならば比較については前後の内容で判断するしかないと思うので、 全部を載せろとは言いませんが、どういう構造とかは書いて頂いた方が良かったのではと 思います。 #と、コメントを書いていたら既にほぼ私の言いたいことをquickquipさんが代弁してました。
guest

回答3

0

このコードの後ろでcountを使うかどうか
その時使いたいのが加算する前の値か、加算した後の値か

で答えが変わるのだから「必要のないコードは載せていません」なんてありえないでしょう。
質問の前提となる情報がおかしいです。


逆に言うと、必要のないコードを省いたらこれだけしか残らなかった、
のであれば、その事実こそがどっちでもいいという結論にいたる証拠だろうと思います。

投稿2021/06/17 06:18

編集2021/06/17 06:20
quickquip

総合スコア11038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Aspiration

2021/06/17 06:25 編集

ご指摘ありがとうございます。 なるほど、そういう事ですね。 であれば、この後countは使う事はございません。 抜粋したコードはLogicクラスによるメソッドの処理で加算処理です。 そしてそのメソッドの処理内容は上記コードで完結します。 呼び出し元はコントローラクラスです。 (MVCモデルです) ---------- なるほど 確かにそういう見方もできますね
quickquip

2021/06/17 07:05

使わないならcount変数に取っていることそのものの是非/よしあしも考えないと意味がなさそうです。 siteEV.setLike(siteEV.getLike() + 1); で十分では??
guest

0

ベストアンサー

掲載コード部分だけならの方が私好みですが、
各自お好きにという感じであまり意味ないように思います。

ただ、条件が変わればこっちの方がいいだろうというのはあると思います。
例えばsetterが複数あって、getLike()はいつ呼んでも変わらないが、微妙に値を調整してsetしたい場合はの方が良いでしょうし

java

1int count = siteEV.getLike(); 2siteEV.setLike1(count + 1); 3siteEV.setLike2(count + 2); 4siteEV.setLike3(count + 3);

getLike()が呼ぶたびに値が変わるような場合は、の方が良いでしょう。

int count1 = siteEV.getLike() + 1; siteEV.setLike1(count1); int count2 = siteEV.getLike() + 1; siteEV.setLike2(count2); int count3 = siteEV.getLike() + 1; siteEV.setLike3(count3);

投稿2021/06/17 06:08

neonemo

総合スコア191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Aspiration

2021/06/17 06:25

なるほど。 わかりやすいご説明ありがとうございます。 大変勉強になります
guest

0

countがどの時点のカウントか

java

1 //①いいねを加算 2 int countToSet = siteEV.getLike() + 1; 3 siteEV.setLike(countToSet); 4 5 //②いいねを加算 6 int currentCount = siteEV.getLike(); 7 siteEV.setLike(currentCount + 1 );

投稿2021/06/17 05:57

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問