2012-01-24 3 views
1

3つの異なる文字があります。 "a"、 "b"、 "c"私はインデックス1、4、7などに値 "a"を、2、5、8などに値 "b"を、3,6,9などに値 "c"を割り当てる必要がありますインデックスが11に等しいと想像してください。対応するcharを定義する必要があります。どのように私はJAVAでこれを行うことができますか? PS。私は、スイッチのステートメントのためにそれが必要です。指定されたインデックス番号に基づいて正しいcharを選択します。スイッチステートメント

更新#1:

私は多分可能な解決策には、次のことができることを考えた:与えられた数を取る、例えば11.「a」、「b」、「c」の3つの選択肢があるため、3で割る。 11/3 = 3.6(6)。そして残りの部分がなくても全体を3で割ることができれば、その部分がどのように含まれるかを推定する。我々のexapleでは1です。そして最後に1 + round(0.66)= 2です。したがって、値 "b"を選択する必要があります。しかし、このソリューションでは再帰を使用する必要があります。

+1

"3,6、* 9 *"を意味しましたか? – paislee

+0

これまでに試したことを投稿できますか? – Bhushan

+0

仕様は何ですか?任意の整数に関連する文字は何でしょうか?それはあなたの例から明らかではありません。あなたの質問を洗練してください。 – ChrisJ

答えて

4

使用Javaのmoduloオペレータ:簡潔にするためreturn秒で圧縮さ

switch (i%3) { 
    case 0: return 'c'; 
    case 1: return 'a'; 
    case 2: return 'b'; 
    default: // 
} 

。実際の生活では、独立したケースの間にbreak;をください。

+0

スペックが "3,6,9 = ... c"ではなく、 "3,6,8 ... => c"であれば動作します。 – ChrisJ

+0

'' a''、 '' b'''、 '' c'''または '' '' '' '' '' b'''を使用するかどうかを決める必要があります。 '' c '')。 – ChrisJ

+0

@ChrisJ私はOPが間違っていると思った。 – paislee

2
switch(index % 3) { 
    case 0: 
     myChar = 'a'; 
     break; 
    case 1: 
     myChar = 'b'; 
     break; 
    case 2: 
     myChar = 'c'; 
     break; 
    default: 
     //...   
} 
+0

このソリューションは一般的ではありません。私が100を持っていたらどうしたらいいですか?いいえ、私はいくつかの一般的なアプローチを探しています。そうでなければ1分で自分自身をやることができます:) –

+0

私はスレッドでミスを犯しました - > 3,6,9。私はそれを訂正した。おそらく、あなたがそのようなソリューションを提案した理由です。 –

+0

はい、私の答えを更新します。 –

関連する問題