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

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

新規登録して質問してみよう
ただいま回答率
85.46%
標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

Java

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

Q&A

1回答

3255閲覧

static変数にscannerをつかってキーボードから数値を入力したい

taro_tokyo

総合スコア5

標準入力

標準入力(stdin)は、プログラムが標準的に用いるデータ入力元。リダイレクトしない限り、プログラムを起動した端末のキーボードが標準入力になります。UNIX系OSやC言語に実装されて普及した概念ですが、他のOSや言語も含めた総称としても使われます。

参照

参照は、プログラミングにおいて変数や関数といったメモリ空間上での所在を指示するデータのことを指します。その中にはデータ自体は含まれず、他の場所にある情報を間接的に指示するプログラムです。

Java

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

0グッド

0クリップ

投稿2020/05/09 08:08

線形探索のプログラムを作っています。自分でデータを入力し、入力した値をそこから見つけ出すというものです。
static変数にscannerを使って標準入力させようとすると、staticでない変数 scannerをstaticコンテキストから参照することはできません。と出てきてしまいます。(5行目)この意味はなんとなくわかるのですが、これを解決する方法がわかりません。
回答よろしくお願いします。

java

1import java.util.Scanner; 2 3class LinearSearch{ 4 static int a[]; 5 Scanner scanner =new Scanner(System.in); 6 final static int NUM = scanner.nextInt(); 7 public static void set(){ 8 System.out.println("要素数を入力"); 9 for(int i=0;i<NUM;i++){ 10 a[i]=scanner.nextInt(); 11 } 12 } 13 public static int search(int key){ 14 int i; 15 for(i=0;i<NUM;i++){ 16 if(a[i]==key){ 17 return i; 18 } 19 } 20 return -1; 21 } 22 public static void main(String args){ 23 this.set(); 24 int key=scanner.nextInt(); 25 if(this.search(key)==-1){ 26 System.out.println(key+"is not found."); 27 }else if(this.search(key)!=-1) { 28 System.out.println(key+"is found."); 29 }else if(key==-999999){ 30 return; 31 } 32 } 33} 34

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

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

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

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

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

guest

回答1

0

Javaでは非常に多い質問ですね。
以前にも似たような質問に回答しているのでこちらを参照してください。

(コンパイル・エラーを消す)答えだけを書くなら、scanner の変数宣言に static キーワードを付け、main メソッドの中の this キーワードは削除してしまえばいいのですが、単に答えを知るだけでなく、なぜそうなるのかをしっかりと理解することが大切です。そのためには staticthis というキーワードがいったい何なのかを学習しましょう。オブジェクト指向のクラスとインスタンス、あるいは静的と動的の区別を理解することはとても重要です。

投稿2020/05/09 08:11

編集2020/05/09 08:19
amadablam

総合スコア402

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問