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

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

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

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

Q&A

解決済

paiza.ioで複数回入力を読み込むことは可能ですか?

bonobiya
bonobiya

総合スコア15

Java

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

3回答

0グッド

0クリップ

8768閲覧

投稿2017/01/17 12:44

イメージ説明

scannerにて読み込んだ値を正の数か負の数か0かを判定した後に下記のところで1...yesと答えたらもう一度整数値を入力する処理のところに行くようなプログラムを作りたかったのですが、画像のようなコンパイルエラーが出てしまいました。paiza.ioでは再度、もう一度入力を受け取る、というのは不可能なのでしょうか?

Java

1System.out.print("もう一度? 1…Yes/0…No : "); 2 retry = stdIn.nextInt();

ちなみにpaiza.ioのコンパイルエラーの隣 入力 の箇所には1と入力しております。

Javaのソースをこちらにも記載致します。

Java

1 2import java.util.Scanner; 3 4public class Main{ 5 public static void main(String[] args){ 6 Scanner stdIn = new Scanner(System.in); 7 8 int retry; 9 do{ 10 System.out.print("整数値 : "); 11 int n = stdIn.nextInt(); 12 if(n > 0){ 13 System.out.println("その値は正です。"); 14 }else if(n < 0){ 15 System.out.println("その値は負です。"); 16 }else if(n == 0){ 17 System.out.println("その値は0です。"); 18 } 19 System.out.print("もう一度? 1…Yes/0…No : "); 20 retry = stdIn.nextInt(); 21 }while(retry == 1); 22 } 23} 24

コンパイルエラーのメッセージも再度記載致します。

javac: file not found: Main.java Usage: javac <options> <source files> use -help for a list of possible options

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答3

3

ベストアンサー

対話的に実行はできないので、先読みして入力を与えておく必要があります。

例えば、今回のプログラムで整数を3回入力して終了したかったら、
入力タブに

100 1 101 1 102 0

としておけば
出力が、

整数値 : その値は正です。 もう一度? 1…Yes/0…No : 整数値 : その値は正です。 もう一度? 1…Yes/0…No : 整数値 : その値は正です。 もう一度? 1…Yes/0…No :

となります。

投稿2017/01/18 00:33

ozwk

総合スコア13053

BeatStar, masaya_ohashi, bonobiya👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

bonobiya

2017/01/18 11:59

回答ありがとうございます。 入力タブ内は 100 1 101 1 102 0 という風に最終的に終了させるように0を入力しておく必要があったのですね。 ありがとうございました。

1

はい、paiza.ioの標準入力はあくまで最初に一度与えるだけで、対話的に使うことはできないようです。

なお、同じコードを自分でpaizaに投げてみたところ、コンパイルは通ったのですが、java.util.Scanner.nextIntjava.util.NoSuchElementExceptionとなってしまいました。

投稿2017/01/17 12:51

maisumakun

総合スコア141417

BeatStar👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

bonobiya

2017/01/18 11:58

回答ありがとうございます。 System.out.print("もう一度? 1…Yes/0…No : "); retry = stdIn.nextInt(); のところで最終的に0と入力しておく必要があったみたいです。

0

コンパイルエラーなので、そもそも実行されていません。
エラーメッセージで検索かけてみましたが、JREのバージョンだとかパスの通し方だとか、
実行環境関連の話が引っ掛かったので、実行時にpaiza側で何かトラブルが起きたのではないでしょうか?

投稿2017/01/17 15:03

swordone

総合スコア20613

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

bonobiya

2017/01/18 11:57 編集

回答ありがとうございます。 paiza ioでは先に入力に値を入れておく必要があり、さらに最終的に System.out.print("もう一度? 1…Yes/0…No : "); retry = stdIn.nextInt(); のところで0と入力しておく必要があったみたいです。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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