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

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

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

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

Q&A

解決済

1回答

3831閲覧

整数を入力して、1からその入力した数字までの間の偶数と奇数を表示させたいです

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2020/06/28 10:26

編集2020/06/28 11:39

前提・実現したいこと

Java勉強中の初心者です。
整数を入力して、1からその入力した数字までの間の偶数と奇数を表示されたいです。String変数に追記して、最後にまとめて出力したいです。
ソースコードは分かる範囲でしか書けていません…

(例)
正の整数を入力してください。
9
1~9までの間の
偶数は 2 4 6 8 です
奇数は 1 3 5 9 です

該当のソースコード

Java

1import java.util.Scanner; 2 3public class Number { 4 public static void main (String[] args) { 5 Scanner sc = new Scanner(System.in); 6 System.out.println("正の整数を入力してください"); 7 int inputnumber = sc.nextInt(); 8 for (int i = 0; i < inputnumber; i++) { 9 if(i % 2 == 0) { 10 11 }else { 12 13 } 14 } 15 sc.close(); 16 } 17}

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

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

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

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

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

swordone

2020/06/28 10:33

この段階であれば、ここまで学んだことはそう多くはないはずです。 まずは「この課題を解決すること」ではなく、今までに学んだことを使って なんでもいいので実験してみてください。
退会済みユーザー

退会済みユーザー

2020/06/28 10:36

前にこの課題みたきがするな
m.ts10806

2020/06/28 10:41

何が問題でしょうか 学校の課題かなにかですか?
退会済みユーザー

退会済みユーザー

2020/06/28 10:49

回答ありがとうございます。 おっしゃる通り、学校の課題です。 試行錯誤しながら意味を理解して見ようとは思うのですが、やはりヒントらしきものが欲しいですね…
退会済みユーザー

退会済みユーザー

2020/06/28 10:54

おそらく去年の同じ学校の人が質問(ほぼ丸投げ)してるな 試していただけないのかとか・・・
m.ts10806

2020/06/28 11:00

宿題、課題の代行のような質問はそもそも非推奨です。 宿題や課題はそれまで習ったことから出るものなので、やるべきは既に指摘があるようにこの課題そのものではなく復習です。
退会済みユーザー

退会済みユーザー

2020/06/28 11:27

お叱りの言葉ありがとうございます。 言い訳にはなりますが、答えだけを知りたいのではなく、考えも理解しようと思い、行き詰まっていた所、投稿させていただきました。復習は、もちろんしましたが、応用問題となるとやはり混乱してしまい、見えなくなってしまいます…
guest

回答1

0

ベストアンサー

String変数に追記して、最後にまとめて出力したいです。

ヒントというか、やりたいことの通りに書けばいいので、最後にまとめて出力するので

java

1 for (int i = 0; i < inputnumber; i++) { 2 if(i % 2 == 0) { 3 4 }else { 5 6 } 7 } 8// 最後で結果を出力する 9 System.out.println("偶数は " + xxx + "です"); 10 System.out.println("奇数は " + yyy + "です"); 11 sc.close();

とすればよいです。
xxxとyyyの部分を偶奇判定しているif文の中でString変数に追記すればよいです。

投稿2020/06/28 11:18

momon-ga

総合スコア4826

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

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

退会済みユーザー

退会済みユーザー

2020/06/28 11:43 編集

import java.util.Scanner; public class Number { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("正の整数を入力してください"); int inputnumber = sc.nextInt(); String str = "偶数は"; String str1 = "奇数は"; for (int i = 0; i < inputnumber; i++) { if (i % 2 == 0) { String str2 = (str + i + ""); } else { String str3 = (str1 + i + ""); } } System.out.println(str2); System.out.println(str3); sc.close(); } } こんな感じでしょうか。
momon-ga

2020/06/28 11:47

ご自身で確かめる方が早いと思いますが。 感じとしては合っています。 が、そもそもコンパイルエラーになりますよね?
退会済みユーザー

退会済みユーザー

2020/06/28 11:55

エラーになりますね。 str2,str3はif文の中でしかスコープがないからでしょうか。 宣言する位置を変えればいいのですが、追記をするためにはif文の中に記述しないと… どうすれば良いですかね。
momon-ga

2020/06/28 11:57

追記をすればよいのです。 if文の中で宣言するのでなく、 str = str + i; で、strのあとに i を追加したことになります。
momon-ga

2020/06/28 12:08 編集

以下のように、単純にスコープの外側に宣言しても、望みの結果にならないですよ。(分岐を2回以上通る場合) ※if文の判定は削除してます String str2 =""; for (int i = 0; i < inputnumber; i++) { str2 = (str + i + ""); } System.out.println(str2);
退会済みユーザー

退会済みユーザー

2020/06/28 12:12

参考になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問