電子書籍の厳選無料作品が豊富!

private DefaultCategoryDataset createData()throws Exception{

CategoryAxis domainAxis = new CategoryAxis("日付");
domainAxis.setTickLabelFont(new Font(Font.DIALOG, Font.ITALIC, 5));

InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);

System.out.println("データセットの作成数を決めてください");
String dnum = br.readLine();
int snum = Integer.parseInt(dnum);

System.out.println("行始を入力してください");
String ssrow = br.readLine();
int srow = Integer.parseInt(ssrow);

System.out.println("行終を入力してください");
String sfrow = br.readLine();
int frow = Integer.parseInt(sfrow);

DefaultCategoryDataset data[] = new DefaultCategoryDataset[6];
String drow[] = new String[6];
int row[] = new int[6];

NumberAxis rangeAxis[] = new NumberAxis[6];
LineAndShapeRenderer renderer[] = new LineAndShapeRenderer[6];
CategoryPlot dataPlot[] = new CategoryPlot[6];



for(int i = 0; i < snum; i++){
int d = i + 1;
data[i] = new DefaultCategoryDataset();
System.out.println("データセット"+d+"の行を入力してください" );
drow[i] = br.readLine();
row[i] = Integer.parseInt(drow[i]);

if(table[row[i]][0] instanceof String){
ntable = (String)table[row[i]][0];
}
if(table[row[i]][1] instanceof String){
s = (String)table[row[i]][1];
}
for(int j = srow-1; j <= frow-1; j++){
if(table[0][j] instanceof String){
stable = (String)table[0][j];
}
if(table[row[i]][j] instanceof Double){
dtable = (Double)table[row[i]][j];
}
data[i].addValue(dtable,ntable,stable);
}

rangeAxis[i] = new NumberAxis("水位[m]");
rangeAxis[i].setAutoRange(false);
rangeAxis[i].setRange(-3, 2.0);
TickUnits tickUnits = new TickUnits();
TickUnit unit = new NumberTickUnit(0.5);
tickUnits.add(unit);
rangeAxis[i].setStandardTickUnits(tickUnits);
rangeAxis[i].setTickLabelFont(new Font(Font.DIALOG, Font.ITALIC, 7));

renderer[i] = new LineAndShapeRenderer();
renderer[i].setSeriesShapesVisible(0, false);
renderer[i].setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());

dataPlot[i] = new CategoryPlot(data[i],null,rangeAxis[i],renderer[i]);
dataPlot[i].setDomainGridlinesVisible(true);
return data[i];
}
}

上記は一部なのですが、コンパイルを試みたところ
ExGraph.java:201: エラー: return文が指定されていません
}
^
エラー1個
とエラーが出ました。
どうゆうことなのでしょうか?

A 回答 (5件)

>もしかしてreturn文にfor文は適用されないのでしょうか


returnは制御文で、直ちにメソッドを抜けます。

どうreturnを解釈されているかよくわかりませんが「戻る」は
何回も出来ないです。一回だけ(^-^;
    • good
    • 0

>つまりfor文の外でreturnすればいいのでしょうか?



まあ、そうなんですが、そもそも for は何のために
あるのでしょう?

i=0 でreturnするように見えるけど?
    • good
    • 0
この回答へのお礼

配列に入っている値の型を判別して
data[0]~data[5]に入れるためです。

もしかしてreturn文にfor文は適用されないのでしょうか?
i = 0 のときreturnでおわってしまうのでしょうか?
i= 0~5までの間createData()に返したいのですが。。

初心者ですいません

お礼日時:2017/01/08 15:03

これ、例えばsnumが0以下だったらreturnは実行されませんよね。



コンパイラは、戻りの有る関数でそういう「可能性」を検出すると
エラーを吐きます。

returnが実行されずに終わる経路を徹底的に潰しましょう。
    • good
    • 0
この回答へのお礼

なるほど!
つまりfor文の外でreturnすればいいのでしょうか?

お礼日時:2017/01/08 14:42

対応する「}」がそれだと, 実は for ループの意味ってまったくないんじゃないかなぁ.... i=0 で必ず return しちゃうよねぇ.



Java コンパイラのたちばだと, たぶん
for が終わっちゃうと値を返さずに return するのはおかしい
のでエラーを出してるんだと思う.
    • good
    • 0

なんかネストがおかしい気がする.



for(int i = 0; i < snum; i++){
の「{」に対応する「}」ってどれ?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
return data[i];
}
↑これです

}

{}の数が一致していないのでしょうか?

お礼日時:2017/01/08 00:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!