Javaでメソッドを勉強しているのですが、演習問題にあるnext()メソッドを作る方法が単純ながら全然分からなくて困っております。
まず、メソッドnext(p)というのは配列によるリスト内の位置pの直後の位置を返すというものです。
このメソッドは単に配列のpの位置にある所から+1番目の配列を出力すれば良いということだけなのですが、そのやり方が分かりません…
以下が私が作ったnext()メソッドです。
int next( int N) { int tempN; return tempN =value[N+1]; }
以下が他のメソッドとメインクラスを合わせた全プログラムで、S.next(4)と書いて次々入力してリストSに格納されたvalの4+1番目を出力したつもりです。
import java.util.Scanner; class list { // 配列を用いたリスト構造 int N; // 要素数 int[] value; // 整数の配列 list() { // コンストラクタ N=0 ; value=new int[100000]; } void insertLast( int v ) { // 最後に挿入 value[N]=v ; N++ ; } void print() { // 表示 int k ; for (int k1=0; k1<N; k1++) System.out.print( value[k1] + " " ) ; System.out.println() ; } int next( int N) { int tempN; return tempN =value[N+1]; } } public class method{ public static void main(String[] args) { Scanner stdin = new Scanner( System.in ) ; list S = new list() ; int val = 0, k; while( stdin.hasNextInt() ) { // 最後まで val=stdin.nextInt() ; // 要素 S.insertLast( val ) ; // 最後に挿入 } S.print() ; // すべて表示 S.next(4); System.out.println("全部で" + S.N + "件") ; } }
以上の様に書いたのですが、やはり動きませんでした。
間違いの指摘やアドバイスをいただければ幸いです。
よろしくお願いしますm(_ _)m
動作確認の不具合の説明のが不十分だっため、追記させていただきます。
上のプログラムを実行し、任意の整数を複数キーボード入力するとそれらが一つ一つリストの最終位置に格納され、正順にに表示されるのですが、
S.next(4)と書いた部分のnext()メソッドの部分が全くコンソール画面に出力されませんでした。
「メソッドの文が全く機能していない」or「出力の仕方が間違っている」
という事だと思うのですが、その点などを教えていただければ幸いです。
回答1件
あなたの回答
tips
プレビュー