2010-12-01 5 views
2

私はこのプログラムを作ったが、if文とelse文を変更して試してみる必要がある。 任意のヘルプは大歓迎されます:) ここではコードです:ifとelse文を入れて試してみようとする方法

import java.awt.*; 
import java.applet.*; 
import java.awt.event.*; 
import java.util.*; 

public class ShowIndex extends Applet implements ActionListener 

{ int [] number =new int[100]; 
    Random r= new Random(); 
    Label indexlabel = new Label(" index:"); 
    TextField indexfield = new TextField(10); 

    Label valuelabel = new Label("value:"); 
    TextField valuefield = new TextField(10); 

    Button showButton = new Button ("Show Element"); 
    public void init() 
     { int i; 
     for(i=0;i<100;i++) 
      number[i]=r.nextInt(1000)+1; // random number between 1 and 1000 
     add(indexlabel); 
     add(indexfield); 
     add(valuelabel); 
     add(valuefield); 
     add(showButton); 

     showButton.addActionListener(this); 
     valuefield.setEditable(false); 

     } 
    public void actionPerformed(ActionEvent e)  
     { String inputString; 
     int num; 
     inputString=indexfield.getText(); 
     num=Integer.parseInt(inputString); 
     if(num>99 ||num<0) 
      valuefield.setText("Outof Bound"); 
     else  
      valuefield.setText(number[num]+""); 

     } 
} 
+2

何を試しましたか?試して仕事をする方法を知っていますか?何かエラーがありますか?より具体的な質問は、単にあなたの課題を達成しようとしていて、単に怠け者ではなく失敗したことを示しています。 –

+0

私はそれがどのように動作するのか本当にわかりません...あなたはそれを私に説明することができます –

+0

これで 'throw'する必要があるかどうかを判断するには、' if'条件を実際に使用する必要があります。しかし、より大きな問題は、あなたがしなければならない「試着/キャッチ」が何をしなければならないのかを把握しているかどうかです。これを読んでください:http://download.oracle.com/javase/tutorial/essential/exceptions/ – birryree

答えて

0

一つの方法は、あなたのactionPerformed機能を書き換えることである:

public void actionPerformed(ActionEvent e) { 

    String inputString; 
    int num; 
    inputString=indexfield.getText(); 
    num=Integer.parseInt(inputString); 

    try { 
     valuefield.setText(number[num]+""); 
    } 
    catch (Exception e) { 
     valuefield.setText("Outof Bound"); 
    } 

    // old version 
    /* 
    if(num>99 ||num<0) 
     valuefield.setText("Outof Bound"); 
    else  
     valuefield.setText(number[num]+""); 
    */ 

    } 

どのようにこのコードを、私はあなたに説明しています働くそれはおそらくコンパイルされません、私は試していない。少しの研究を行います。アイデアを見て、どのように一緒にフィットするか見てみましょう。配列境界と配列のリスト形式に関する研究そして、ライン

catch (Exception e) { 

少し一般的です、私はあなたがそれを改善することができると確信しています。

1

はこれを試してみてください:

try{ 
    valueField.setText(number[num]+""); 
}catch(ArrayIndexOutOfBoundsException e){ 
    valueField.setText("Out of bound"); 
} 
2

は、フロー制御メカニズムとして例外処理を使用しないでください。 if節を保持します。

0

あなたは教師/上司があなたに言ったので、またはあなたがと仮定していると言っていますか?する必要がありますか?この変化には何がありますか?結局のところ、基本的な目的が明らかにすることができることについて少し考えました。結局、変更の必要はありません。

関連する問題