2012-04-19 11 views
-1

が、私は次のコードを持ってチェックASCII:のJava -

 t= (int)(Math.random()*8+1)+96; //ascii table 
     if (t!= 96){ 
       choose[(int)(t-97)] = 1; 
       r[0] = (char)t;} 
    } 

私はr[0]で、bからhに文字だけが存在することになることをしてみてください('a'が許可されていません)。私がそれを実行すると、時々r[0]には'a'が含まれていることがわかります。理由は何でしょうか?

+0

私はそれが次のようになると思った: '(int)(Math.random()*(high-low)+ low);'の意味:> = x und wuppi

答えて

3

'a'はASCII 97であり、あなたはそれを防止していません。

'a'を選択して拒否するのではなく、98( 'b')から104( 'h')までの値を選んでみませんか?

(私も代わりMath.randomRandom.nextIntを使用することをお勧めし、代わりに魔法の数字の文字リテラル、しかしだろう...)

0

キー

a= 97 //asCII 

いますが、持っている場合は96キーの状態計算の後でも、最後のキー値を確認していません。 ASCII TABLE

+2

伝説はここです:-) – Shehzad

0

Math.random()が0.1249より小さい値を返した場合に表示されます。整数値は97となり、 'a'が出力されます。 aのASCII値は97です.96だけではないかどうかチェックしています。