2016-07-26 6 views
1

ascii値または文字のスイッチケースは同じように動作しますか?ケースは内部ASCII変換方法文字とascii値を持つスイッチケースは、Javaで同じ動作をします

がcharか、またはcharが基本的

public class Rq200_150 { 

    public static void main(String[] args) { 

     for (Character cRef = 'A'; cRef < 'F'; cRef++) 
      switch (cRef) { 
      default: 
       System.out.println((char) ('a' + cRef - 'A')); 
       break; 
      case 'B': 
       System.out.println(cRef); 
       break; 
      case 68: 
       System.out.println(cRef); 
       break; 
      case 67: 
       System.out.println(cRef); 
      } 
    } 

} 
+0

どのような質問/問題ですか。あなたは精緻化できますか? – Thomas

+0

キャラクターDのアスキーであるケース68をケースDと考えていますが、私の質問は、68がDのアスキー値であることを知るためのスイッチケースです私たちはcRefすなわちスイッチケースの文字を提供しています。次に、68,67の数字の場合を受け入れます。 –

+0

68は 'D'のUnicode(およびascii)値で、' char'はintに変換できます:http:// docs .oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – Thomas

答えて

1

をASCIIに、チャーの範囲の符号なし整数であり、0(それのが0xFFFF)

チャー65535:CHARデータ型は単一の16ビットUnicode文字です。 '\ u0000'(または0)の最小値と '\ uffff'(または65535を含む)の最大値を持ちます。お使いのコンピュータがUnicodeをサポートしていると仮定すると、その番号に対応するUnicode文字として出力し(Hereから)

値0〜127(0x7f)はUnicodeの元の先駆け(ASCII)に対応し、0〜255(0xff)は拡張ASCIIです。

あなたのプログラムは大文字または小文字の "68"または "D"に設定されているため、どちらの方法でも同じことが読み取られます。

希望する質問

+0

は逆の変換ですか? –

+0

またはそれはcharだけをintに変換します。つまり、 'D'は68として、 '68'は 'D'になりません。 –

+0

はい、変換は両方とも行われます。 –

0

実際には、charプリミティブは数字です。 java vmは、フォーム 'x'の任意の値を、対応する数値に変換して比較します。したがって、68 = 'D'なので、どちらか一方をswitchステートメントに入れると、そのシナリオを捕まえることになります。それでなぜあなたは文字で数学をすることができますか?文字は単なる数字です。例えば

+0

を変換その逆である持っていると思いますか? –

+0

またはそれはintにのみcharをカバーしています。すなわち、 'D'は68として、 'D'は68にはありません –

+0

その時点で必要なものに変換します。番号68を印刷すると、文字が必要なことが分かっていないので、それだけで印刷されます。あなたは "文字"の代わりに "char"を使うべきです、あなたはオブジェクトバージョンを必要とせず、より予測可能です。 – TheNumenorean

0

バイナリ数値昇格は、特定の演算子のオペランドに対して行われる 数値比較演算子<、< =、>、および> =

任意のオペランドがである場合参照型、それはアンボックス化 変換(5.1.8)を受ける。

一方のオペランドがタイプdoubleの場合、他の二重に変換される:

プリミティブ変換(5.1.2)は、いずれかまたは 以下の規則によって指定されるように両方のオペランドを変換するために適用される拡大します。

そうでない場合、いずれかのオペランドがfloat型である場合、もう一方のオペランドがfloat型に変換されます( )。

一方、いずれかのオペランドがlong型の場合、もう一方のオペランドはlongに変換されます( )。

それ以外の場合は、両方のオペランドがint型に変換されます。

この場合、intに実行されます。

これは広いトピックです。oracle

+0

それを得ました。 –

関連する問題