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

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

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

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

Eclipse

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

Q&A

解決済

3回答

1634閲覧

javaの引数での質問です。メソッド内での引数の呼び出しがうまくいかないです。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Eclipse

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

0グッド

0クリップ

投稿2019/03/25 15:49

前提・実現したいこと

javaの引数での質問です。

二つ目のメソッドにてmultiplication(false,out);
と呼び出すとうまくいきません。改善方法があればご指摘お願いします。

前提として実現したいことは出来ています。
1つめのメソッド multiplication 最終的に実行させたいメソッド。
このメソッドで,【引数を4つ受け取って】掛け算を行う。
第一引数と第二引数を掛け算し,第三引数の値が true であるときにかぎって,掛け算の結果をさらに2乗し。また,計算結果の値を画面に表示処理。

2つ目のメソッド
このメソッドは【引数を2つ受け取って】1つめのメソッドを呼び出し。
1つめのメソッドを呼び出す際に足りない情報を【デフォルト値】で補う。

以下のコードでやりたいことは実現できているのですがmultiplication(false,out);を呼び出すのがうまくいきません
ご指摘お願いします。

java

1package org.mypackage.sample; 2 3import java.io.IOException; 4import java.io.PrintWriter; 5 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11 12 13/** 14 * Servlet implementation class Method3 15 */ 16@WebServlet("/Method3") 17public class Method3 extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 /** 21 * @see HttpServlet#HttpServlet() 22 */ 23 public Method3() { 24 super(); 25 // TODO Auto-generated constructor stub 26 } 27 28 /** 29 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 30 */ 31 32 /* 一つ目のメソッド*/ 33 void multiplication(int num1,int num2,boolean bl,PrintWriter pw){ 34 35 /*第一引数と第二引数の掛け算*/ 36 int num3=num1*num2; 37 if(bl) {num3=num3*num3;} 38 39 pw.print(num3); 40 41 } 42 43 /*二つ目のメソッド*/ 44 void multiplication(boolean bl,PrintWriter pw) { 45 /*int num1 num2のデフォルト値を設定*/ 46 pw.print("<br>"); 47 multiplication(1,1,true, pw); 48 49 } 50 51 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 52 // TODO Auto-generated method stub 53 response.setContentType("text/html;charset=UTF-8"); 54 try (PrintWriter out = response.getWriter()) { 55 56 // multiplicationメソッドの呼び出し 57 58 multiplication(2,2,true,out); 59 60 multiplication(true,out); 61 } 62 63 } 64 65 66 /** 67 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 68 */ 69 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 70 // TODO Auto-generated method stub 71 doGet(request, response); 72 } 73 74}

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

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

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

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

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

y_waiwai

2019/03/25 15:51

うまくいかない、とはどうなるんでしょうか
shinami

2019/03/26 02:52

>前提として実現したいことは出来ています。 >以下のコードでやりたいことは実現できているのですが >multiplication(false,out);を呼び出すのがうまくいきません 実現できてはいるけれども実現できていない? これでも良いけれどもっと良い方法があるかという事でしょうか?
guest

回答3

0

multiplication(2,2,true,out);
multiplication(true,out);
となっているので
num1=2、num2=2、blはtrueの固定となります。
falseの時はうまくいかない?とはどういう事でしょうか?
multiplication(false,out);に変えて確かめればできるのではないでしょうか?
ただし、メソッド2でメソッド1を呼び出すときにtrue固定になっているのでやっぱり同じで二乗します。
※補足:固定と言っていますけど渡した直後の話です。
finalがないので渡した後に代入はできましたね。
メソッド1の呼び出しでもfalseにするのか、それともblにするのか。
multiplication(false.out);とした時にはどのようになる事をお望みでしょうか?

java

1void multiplication(int num1,int num2,boolean bl,PrintWriter pw){ 2 3 /*第一引数と第二引数の掛け算*/ 4 int num3=num1*num2; // 5 6 if(bl) { //if(bl)はif(bl == true)と同じです。 7 num3=num3*num3; //trueの時だけ計算されます。 8 } 9 10 pw.print(num3); 11 12} 13 14 /*二つ目のメソッド*/ 15void multiplication(boolean bl,PrintWriter pw) { 16 17 /*int num1 num2のデフォルト値を設定*/ 18 pw.print("<br>"); 19 multiplication(1,1,true, pw); //blがfalseでもここでtrueとしているのでやっぱり二乗 20 21} 22

投稿2019/03/26 02:50

編集2019/03/26 13:28
shinami

総合スコア334

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

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

0

ベストアンサー

java

1protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 response.setContentType("text/html;charset=UTF-8"); 3 multiplication(2,2,true,out); 4 5 multiplication(true,out); 6}

これに対し、

java

1/*二つ目のメソッド*/ 2void multiplication(boolean bl,PrintWriter pw) { 3 /*int num1 num2のデフォルト値を設定*/ 4 pw.print("<br>"); 5 multiplication(1,1,true, pw); /////// ここの第3引数は bl では? 6}

bl の値がどこにも使われてないので、falseを指定していても動かないのでしょう。

投稿2019/03/25 16:17

A-pZ

総合スコア12011

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

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

0

/二つ目のメソッド/

void multiplication(boolean bl,PrintWriter pw) { /*int num1 num2のデフォルト値を設定*/ pw.print("<br>"); multiplication(1,1,true, pw); }

1つ目の引数は使用されてないですね

投稿2019/03/25 15:54

y_waiwai

総合スコア87749

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問