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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

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

Q&A

解決済

1回答

5032閲覧

Java;メソッドに二つの引数を作成

Mario_11

総合スコア95

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

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

0グッド

0クリップ

投稿2018/03/31 00:22

メソッドの中に二つの引数を入れて
第一引数 数値型
第二引数 PrintWriter 型
第一引数で得た値が偶数か奇数かを条件判断し,そのどちらであるかを画面に表示するものとします。
メソッドを作成したら,このメソッドを呼び出す処理を記述します。という問題を今解いてるのですが。
/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.

*/

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
*

  • @author ichinosemasahiro

*/
public class method3 extends HttpServlet {
void i (int num, PrintWriter pw){

int i = 0 ;{ if (i % 2 == 2){ pw.print(i + "は偶数です"); } else if (i % 2 != 0){ pw.println(i + "は奇数です"); } else{ pw.print( "ゼロです"); } } } /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); { /* TODO output your page here. You may use following sample code. */ i(out); } }

i(out);だけだとエラーが出てしまいますが横にi(2,out)数字を入れるとエラーが出ません。理由はなんですか?
自分の考えですがもしかしたら、その数字を奇数か偶数か実行してくれると思ったのですが、やってみると0しか出ません。どうしたらi(数字,out)の中に数字を入れてそれを偶数か奇数か判断できますか??

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは とりあえず

i(out);だけだとエラーが出てしまいますが

メソッド"i"は引数が2つです。ですので引数1つだと足りないのでエラーが出ます。

Java

1import java.util.Scanner; 2 3public class Midi{ 4 public static void main(String[] args) { 5 6 Scanner sc = new Scanner(System.in); 7 String line = sc.nextLine(); 8 int n = Integer.parseInt(line); 9 10 check_num(n); 11 } 12 13 14 15 public static void check_num(int num){ 16 17 if (num % 2 == 0){ 18 System.out.println(num + "は偶数です"); 19 } 20 21 else { 22 System.out.println(num + "は奇数です"); 23 } 24 25 } 26 27 28 }

<追記>PrintWriterによるソースの追加です。test1.textという名のメモ帳が作られます。

Java

1import java.io.*; 2import java.io.IOException; 3import java.io.PrintWriter; 4 5public class Midi{ 6 public static void main(String[] args) { 7 PrintWriter pw = null; 8 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 9 try { 10 String line = reader.readLine(); 11 int n = Integer.parseInt(line); 12 pw = new PrintWriter(new BufferedWriter(new FileWriter("test1.txt"))); 13 14 check_num(n,pw); 15 } catch (IOException e) { 16 17 } 18 19 pw.flush(); 20 System.out.println("Data Writing Finished."); 21 } 22 23 public static void check_num(int num,PrintWriter pw){ 24 25 if (num % 2 == 0){ 26 pw.println(num + "は偶数です"); 27 } 28 29 else if (num % 2 != 0){ 30 pw.println(num + "は奇数です"); 31 } 32 33 } 34 35 36 } 37

<追記2>

Java

1void i (int num, PrintWriter pw){ 2int i = 0 ;{ 3 if (i % 2 == 2){ 4 pw.print(i + "は偶数です"); 5 } 6 7else if (i % 2 != 0){ 8 pw.println(i + "は奇数です"); 9 } 10else{ 11 pw.print( "ゼロです"); 12 } 13 } 14

メソッドiの第一引数numがあるにかかわらずメソッドの中でint型変数iを使って
評価しているのでメソッドiがnumに依存しません
そしてi = 0としているのため numがどんな値をとっても"ゼロです。"と出力されます。
また、偶数か奇数か評価するところで 偶数のところは

if(num % 2 == 2)

ではなく

if(num % 2 == 0)

です。(偶数を2で割った余りは0ですよね)
これができれば、奇数のところはelseで十分です。
そして0の場合ですが,0も偶数なのでわざわざ分ける必要はありません。

あと、メソッドの名前はiでもエラーは出ませんが,
そのメソッドが何をしているのかわかるような名前を付けたほうがいいと思います。

投稿2018/03/31 00:32

編集2018/03/31 09:30
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Mario_11

2018/03/31 03:25

二つの場合は i(out);を二つ書くのですか?書いたんですがエラーが出ました。 それとi(数字,out) は何を意味してるのでしょうか? 質問攻めですいません。
退会済みユーザー

退会済みユーザー

2018/03/31 04:27 編集

メソッドi の第一引数は偶数か奇数か判定する整数、第二引数はoutになると思われます。 PrintWriterについてあまり詳しくありませんが画面に表示したいだけならば別の方法が あります。そちらでもよろしいでしょうか? (どうしてもPrintWriterで書きたい理由がありましたらそちらで書きますが...)
退会済みユーザー

退会済みユーザー

2018/03/31 04:28

一応、PrintWriterを使わないで書いた場合のソースコードを載せておきます.
Mario_11

2018/03/31 05:56

ありがとうごいざいます 本当に申し訳ないのですが、PrintWriterの方もお願いできますでしょうか?
退会済みユーザー

退会済みユーザー

2018/03/31 06:45

PrintWriterによるソースの追加です。test1.textというメモ帳ができると思います。
Mario_11

2018/03/31 08:53

ありがとうございました!! 全ては理解できませんでい¥したが少しずつ勉強して行きます!!
退会済みユーザー

退会済みユーザー

2018/03/31 09:21

これでよろしかったでしょうか 問題文を見たところhtmlで表示すると思いましたが、 PrintWriterについてあまり知らないでとりあえずメモ帳を出力するコードを書きました。 メソッドについて 少し説明を追記として載せておきます。
Mario_11

2018/03/31 11:30

めちゃくちゃよろしいです!!!ずっと躓いていたんですごく助かりました。 これからもなんども質問をしていくと思うので、見つけたらよろしくお願いします!! ありがとうございます。
退会済みユーザー

退会済みユーザー

2018/03/31 11:56

実をいうと、PrintWriterを今日初めて知りました (すみません) ですので、あまり良い回答になっているとは思ってなかったのですが、お役にたってうれしいです。 おかげでPrintWriterを知るきっかけとなりました。 これからもわかる範囲で回答しますのでよろしくお願いします。(Java以外でもOK!!) こちらこそありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問