2012-06-25 3 views
-5

배열 요소 1 - 9 각각을 표시하지만 10 및 11 번째 요소를 표시하지 않는 messagebox ?? 나는 10에 도달 할 수없는 11 개 요소 내가 너무 서식있는 텍스트 상자와 함께 할 tryied하지만 내가 볼 수없는 이유 i == 10, 당신은 배열의 11 번째 요소를 볼 수 다시보이지 않는 배열 요소

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    int i; 
    int[] array1 = new array1[11]; 
    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     try 
     { 
      array1[i] = int.Parse(textBox1.Text) % 10; 
      MessageBox.Show(dizi[i].ToString()); 
     } 
     catch 
     { 
      if (i > 11) 
      { 
       //MessageBox.Show("it can't be big than 11"); 
      } 
     } 
     i++; 
    } 
} 
+2

'dizi'란 무엇입니까? – Charleh

+2

배열이 0-10 사이에 있기 때문에 11이 존재하지 않습니다. – tutts

+2

무엇이 잘못되었는지에 대한 정보를 제공하기 위해 예외가 throw되는지 궁금합니다. 그것은 당신의 코드에서 그것을 무시하는 대신 그 예외를 볼 수 있다면 그것은 좋을 것입니다 ... – David

답변

2

. 배열 인덱스가 0으로 시작하기 때문에 i0에서 10으로 이동하기 때문입니다. 11 또는 그 이상의 숫자를 사용하면 예외가 발생합니다. 배열에 액세스하려고 시도하기 전에 확인하시기 바랍니다. 같은 : int에 대한

if (i < 11) {  // or if (i < dizi.Length) 
    try 
    { 
     dizi[i] = int.Parse(textBox1.Text); 
     MessageBox.Show(dizi[i].ToString()); 
     i++; 
    } 
    catch (Exception ex) 
    { 
     // You can still get errors if the text cannot be parsed to an int 
    } 
} 
0

최대 값은 그보다 큰 숫자를 입력 한 경우 2147483647 그래서, int.Parse()가 자동으로 실패했을 것입니다. 그리고 다른 사람들이 언급했듯이, 11 번째 요소는 없습니다.

+0

C. 감사합니다. 감사합니다. 감사합니다. ... 지금은 이해 하셨으나 –

+0

사용할 수있는 변수는 무엇입니까? –

+0

달성하고자하는 것이 분명하지 않습니다. 당신은 단순히'MessageBox.Show (textBox1.Text); '를 사용할 수 있지만'int'에 먼저 캐스팅 한 이유가있을 것입니다. –

1

예, 이미 답을 얻었으나 변수 한계에 대해서는 신중해야합니다.

Type  Size (in bits)  Range 
-----   --------   ---------- 
sbyte   8    -128 to 127 
byte   8    0 to 255 
short   16    -32768 to 32767 
ushort   16    0 to 65535 
int     32    -2147483648 to 2147483647 
uint   3     0 to 4294967295 
long   64     -9223372036854775808 to 9223372036854775807 
ulong   64    0 to 18446744073709551615 
char   16    0 to 65535 
float   32    7 digits 1.5 x 10-45 to 3.4 x 1038 
Double    64    15-16 digits 5.0 x 10-324 to 1.7 x 10308 
Decimal   128    28-29 decimal places 1.0 x 10-28 to 7.9 x 1028 
+0

덕분에 도움이 될 것입니다. –

+0

바이트는 87 비트입니까? 와우, 네가 가진 미친 CPU 아키텍처 야. –

+0

또한; 이 질문은 배열 원점과 관련이있는 것으로 보인다. 0을 기반으로 한 1 기반. 이 답변이 질문에 어떻게 관련되어 있는지 확실하지 않아 즉시 받아 들일 수 있다는 것이 매우 이상합니다. –