Javaでif文を使ってキーボード入力の条件処理を行う方法がわかりません

このQ&Aのポイント
  • Javaでif文を使ってキーボード入力の条件処理を行う方法がわかりません。キーボード入力が0なら「0です」と表示し、偶数なら偶数と表示、奇数なら奇数と表示するプログラムを作成したいのですが、うまくできません。
  • 現在はimport文やキーボード入力を受け取る処理までは実装できていますが、何億という大きな数字を受け取り、それが奇数なら奇数だけを表示する方法がわかりません。
  • 条件処理でこの値以上この値以下という制約をつけることはできますが、具体的な値で制約をつける方法がわからず、手がかりがありません。ヒントやアドバイスをいただけると助かります。
回答を見る
  • ベストアンサー

javaでif文を使ってわかりません

javaでif文を使ってわかりません わからないのはキーボード入力で0なら「0です」と偶数・奇数ならそれぞれ偶数・奇数と表示するif文のプログラムです。 とりあえず import java.util.Scanner; public class OddEven2 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int str = sc.nextInt(); if(str==0) { System.out.println("0です"); } } } まではできました けど何億とある数字をキーボード入力で奇数なら奇数だけ表示させるとはどういうことでしょうか? 条件処理でこの値以上この値以下でなわけないし 糸口さえ掴めない状態です ヒントをいただけるとありがたいです

  • datk
  • お礼率100% (1/1)

質問者が選んだベストアンサー

  • ベストアンサー
noname#120567
noname#120567
回答No.1

偶数とは、どんな数字であっても、2で割った余りが0の数です。

datk
質問者

お礼

ありがとうございます。 参考にしてEclipse上で考えながらためします

datk
質問者

補足

ありがとうございました とても参考になりました。ついでに奇数も同じようにしたらできました

関連するQ&A

  • Javaの初心者です

    Javaの勉強をしています。 以下のコードを作成しました。 import java.util.*; public class Main { public static void main(String[] args) { int flg = 0; Scanner sc = new Scanner(System.in); String str = sc.next(); String data = sc.next(); if (data == str) { flg = 1; } if (flg == 1) { System.out.println("YES"); } else { System.out.println("NO"); } } } 標準入力に A A を入力して実行しました。 YESと表示されるのを期待していたのですが、NOと表示されます。 何が悪いのでしょうか?

    • ベストアンサー
    • Java
  • かなり初歩的なプログラミング(Java)についての質問です。

    かなり初歩的なプログラミング(Java)についての質問です。 お恥ずかしながら、かなり初歩ではありますが躓いております・・・。 import java.util.Scanner; class OddEven{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.println("整数を入力してください。"); String str1=sc.next(); int i = Integer.parseInt(str1); if(i%2==0){ System.out.println(i+"は偶数です。"); } else { System.out.println(i+"は奇数です。"); } } } } 以上のような内容なのですがコンパイルしようとすると 「OddEven.java:21: class、interface、または enum がありません。」 といったエラーがでます。 文法などは間違ってない!・・・と思うのですが・・・。 ご指摘していただきたいです。 あともう一つ質問です。じつはこっちが聞きたかったり・・・。 上記のソースコードを見ていただければわかると思いますが 「import java.util.Scanner;」 と最初の部分に記述していますが、これは授業で教師が教えてくれたもので手持ちの参考書では 「import java.io*;」 と記述されています。(もしかして今回のエラーもここから・・・?) この二つの違いは・・・聞いても正直分かりそうにはないので どっちを使っていけばいいか、などを教えていただきたいです。

    • ベストアンサー
    • Java
  • if文を使った問題について

    次の問題について・・・ 問題: (1)String型の変数を2個作成し、それぞれに自分の名前と年齢を設定する。 (2)標準入力を行う。 (3)標準入力された値が「name」だった場合は名前の入力されている変数の値を表示する。 (4)標準入力された値が「age」だった場合は年齢の入力されている変数の値を表示する。 (5)標準入力された値が「name」と「age」以外だった場合は「わかりません」と表示する。 出力結果: C:\>java NameAge name 岩田 C:\>java NameAge age 27 C:\>java NameAge ?? わかりません 解答例: import java.io.*; class NameAge{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String hoge = br.readLine(); if(hoge.equals("name")){ System.out.println("岩田"); }else if(hoge.equals("age")){ System.out.println("27"); }else{ System.out.println("わかりません"); } } } ************************************************************ 上記の解答例以外に記述方法ってないのでしょうか? 自分は最初switch文を使って出来ると思い、 import java.io.*; class NameAge{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); switch(str){ case "name": System.out.println("岩田"); break; case "age": System.out.println("27"); break; default: System.out.println("わかりません"); break; } } } というふうに記述してみたのですが、 NameAge.java:13:互換性のない型 検出値 : java.lang.String 期待値 : int switch(str){ とエラーが出てしまいました。 恐らくstrの変数をここで使おうとしたことがいけないの だろうと解釈したのですが、 この質問の場合switch文での記述方法というのは無いですか? やはりequals()メソッドを使ってif文で記述するしかない のでしょうか?

    • ベストアンサー
    • Java
  • java eclipse do-while文

    計算問題のプログラムです。No…0を選択したときにwhile文から抜け出したいです。 抜け出せない原因と解決方法(プログラム)を教えていただけるとありがたいです。 package lesson5; import java.util.Random; import java.util.Scanner; public class MentalArithmetic { static Scanner stdIn = new Scanner(System.in); static boolean confirmRetry(){ int cont; do{ System.out.print("もう一度?<Yes・・・1/No・・・0> : "); cont = stdIn.nextInt(); }while (cont != 0 && cont != 1); return cont ==1; } static void mondai1(){ Random rand = new Random(); do{ int p = rand.nextInt(900) + 100; int q = rand.nextInt(900) + 100; int r = rand.nextInt(900) + 100; while(true){ System.out.println(p + "+" + q + "+" + r + " = " ); int k = stdIn.nextInt(); // if(k == p + q + r) // break; System.out.println("違いますよ!!"); } }while (confirmRetry()); } public static void main(String[] args) { System.out.println("暗算力トレーニング!!"); while (true) { mondai1(); } } }

  • javaで判別式のプログラミングを作りたいのですが

    javaで二次方程式ax2+bx+c=0が,2つの異なる実数解をもつ,実数の重解をもつ,実数解をもたないのいずれであるかを判別するプログラムを作りたいのですが、 何度実行しても正しい答えが出てくれません。なぜでしょうか? import java.util.Scanner; class Kadai { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int a,b,c,d; System.out.println("二次方程式y=ax^2+bx+cの解を判別します。"); System.out.print("aを入力してください。:"); a = sc.nextInt(); System.out.print("bを入力してください。:"); b = sc.nextInt(); System.out.print("cを入力してください。:"); c = sc.nextInt(); d=b^2-4*a*c; System.out.println("y="+a+"x^2+"+b+"x+"+c+"の判定は以下の通りです。"); if(d>0){ System.out.println("判別式D>0"); System.out.print("2つの異なる実数解をもつ。"); } if(d==0){ System.out.println("判別式D=0"); System.out.print("実数の重解をもつ。"); } if(d<0){ System.out.println("判別式D<0"); System.out.print("実数解をもたない。"); } } } これを実行すると下の画像のように異なる結果が出てしまいます。 この場合、正しくは実数の重解を持つですよね? どこが間違っているか指摘してくださると嬉しいですm(_ _)m

    • ベストアンサー
    • Java
  • javaに関する質問

    n個の整数値を入力し、それらの値を昇順に並べ替えるプログラムを書いたのですがエラーにより問題が発生しました。 問題は下記の実行例のように数字を,で区切り入力すると、エラーが発生し結果が表示されないという問題です。(Enterで改行するように区切ればエラーなく実行されます) 実行例として 整数値を入力してください。 1,5,7,3 ← 手入力部分 1,3,5,7 ← 実行結果 となれば正解のようです。 これが僕の書いたコードです。 package jp.javadrive; import java.util.Arrays; import java.util.Scanner; public class Java { public static void main(String[] args) { System.out.println("整数値を入力してください。"); @SuppressWarnings("resource") Scanner a = new Scanner(System.in); @SuppressWarnings("resource") Scanner b = new Scanner(System.in); @SuppressWarnings("resource") Scanner c = new Scanner(System.in); @SuppressWarnings("resource") Scanner d = new Scanner(System.in); int a1 = a.nextInt(); int b1 = b.nextInt(); int c1 = c.nextInt(); int d1 = d.nextInt(); int[] arr = new int[]{a1,b1,c1,d1}; Arrays.sort(arr); for(int i = 0;i < arr.length;i++) System.out.print(arr[i]); } } 初めてjavaを触った為、ググりながら書いていたので仕組みを分かっていないところがあるので、間違っている箇所があればどしどしご指摘お願いします。

    • ベストアンサー
    • Java
  • javaのfor文

    nの値の和を求めるのはこれ以外に書き方はありますか? import java.util.*; class SampleGoo{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print("整数値:");int n = std.nextInt(); int ans = 0; for (int i = 1;i <= n;i++){ ans = ans + i; } System.out.println(Integer.toString(ans)); } }

  • javaのfor文

    nの値の和を求めるのはこれ以外に書き方はありますか? import java.util.*; class SampleGoo{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print(\"整数値:\");int n = std.nextInt(); int ans = 0; for (int i = 1;i <= n;i++){ ans = ans + i; } System.out.println(Integer.toString(ans)); } }

  • java練習

    import java.util.Scanner; class test { public static void main (String[ ] args) throws IOException { System.out.println("文章を入力してください。"); BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); String str = input.readLine( ); if (str == A) { str ="10"; } else if (str == 64) { str ="100"; } else if (str == 3E8) { str ="1000"; } else if (str == FF) { str ="255"; } else if (str == 100) { str ="256"; } System.out.println(" str + "); } } 今プログラミングの練習で文字や数字を判別するプログラムを作っています。 とりあえず16進数を入力したら10進数に変換されるプログラムを書いてたんですけどコンパイルしたらどうしてもエラーが出てきてしまいます。 調べてもよくわかりません、助けてください。

  • 論理演算子”||”またはの入力方法

    私はjavaを勉強中の初心者です。if文で論理演算子のまたは”||”はどのように入力すればよいか分かりません。わたしはshiftキーと¥を同時に押してその後変換して、または”||”を作っていますが赤い波線になってしまいます。私は英語タイプのキーボードを使用しています。作成した式や文は間違っていないと思いますが、構成ミスでエラーになっている可能性があるといけないので合わせて添付します。どなたか宜しくお願いいます。 import java.util.*; public class practise { public static void main(String[] args){ Scanner input=new Scanner(System.in); System.out.print("数学の成績入力:"); int score1=input.nextInt(); System.out.print("英語の成績入力:"); int score2=input.nextInt(); if (score1>90 && score2>80) ∥ (score1==100 && score2>70){ System.out.print("\n先生:良くできました!!"); } } }

専門家に質問してみよう