2014-03-12 9 views
0
private void answer_Click(object sender, EventArgs e) 
    { 
     int textbox1; 
     int textbox2; 
     int answer; 

     textbox1 = int.Parse(textBox1.Text); 
     textbox2 = int.Parse(textBox2.Text); 



     if (comboBox1.SelectedText.ToString() == "+") 
     { 
      answer = (textbox1 + textbox2); 

     } 
     else if (comboBox1.SelectedText.ToString() == "-") 
     { 
      answer = (textbox1 - textbox2); 

     } 
     else if (comboBox1.SelectedText.ToString() == "*") 
     { 
      answer = (textbox1 * textbox2); 

     } 
     else if (comboBox1.SelectedText.ToString() == "/") 
     { 
      answer = (textbox1/textbox2); 

     } 

     // the error is here that says Use of unassigned local variable 'answer' 

     MessageBox.Show(answer.ToString()); 

    } 
  • 내가 현재의 클래스에 변수 "답"을 선언 한 같은 오류가 왜 이해가 안를 선택합니다.
  • 는 어떻게 예를 들어, 메시지 박스에 계산을 표시 할 수 있습니다 :

사용자 TextBox1에에 입력 (12)과 TextBox2를 2, 그래서 그들은 선택 '-'자신의 작업으로 다음 메시지 박스가 10을 표시한다 . 당신이 그것을 정의 할 때은 수학 연산 (C# 산술 연산)

답변

1

textbox1textboxtwo에 calculations.Change textboxone에서 그 변수를 사용하지 않는 난 당신이를 초기화가 있음을 동의합니다 다양한 답변이 있지만 또 다른 문제가 있습니다!

는 대신 comboBox1.SelectedText.ToString()

의) comboBox1.SelectedItem.ToString를 (사용해야합니다) 안녕

당신을 위해
2

그냥 값에 변수를 할당합니다

int answer = 0; 

당신의 조건 중 하나가 다음 answer는 여전히 당신을 경고가 표시 unassigned.Compiler됩니다 일치하지 않는 경우.

그리고 당신의 또 다른 실수는, 당신은 정수로 textBox1.TexttextBox2.Text을 구문 분석하는,하지만 당신은 textbox2

+0

은 전혀 그렇지 않습니다 0 –

+0

에가 ..... –

+0

당신이 저를 제안하고하는 클래스의 상단에 변수 답을 선언하는 것입니다 대답 = 0? 나는 지금 나에게 추천했다. 그러나 메시지 상자는 계산에 textbox1과 textbox2를 사용하지 않으므로 0 –

1

빠른 다시 포맷 :

private void answer_Click(object sender, EventArgs e) 
{ 
    int 
     textbox1 = int.Parse(textBox1.Text), 
     textbox2 = int.Parse(textBox2.Text), 
     answer = 0; 

    if (comboBox1.Text == "+") 
     answer = (textbox1 + textbox2); 
    else if (comboBox1.Text == "-") 
     answer = (textbox1 - textbox2); 
    else if (comboBox1.Text == "*") 
     answer = (textbox1 * textbox2); 
    else if (comboBox1.Text == "/") 
     answer = (textbox1/textbox2); 

    MessageBox.Show(answer.ToString()); 
} 

당신을 희망 할 수 원래 것의 무엇이 잘못되었는지보십시오. 관찰

커플 :

  • 즉 외부 범위의 변수와 같은 비슷한 이름을 가진 로컬 변수를 명명주의하십시오. "textbox1"등 필요한 모든 "textbox1" "textbox1"대문자 변경 및 컴파일 오류가 발생합니다. 항등 연산자와
  • 피 비교 문자열 대신
  • 피 구문 분석 INT 적절한 시도/캐치하지 않고 string.Equals를 사용하거나 int.TryParse을 사용 (권장)
  • 피 상수에 대해 문자열 값을 비교하여 프로그램의 흐름을 분기 (있는 경우 이 경우 사용자가 원하는 작업을 결정하기 위해 예를 들어 ComboBox.SelectedIndex를 사용할 수 있습니다.
  • 암시 적 문화로 변수를 ToStringing하지 마십시오. 대부분의 경우 형식에 문제가 발생할 수 있습니다. 수치 적 값은 불변의 문화를 사용할 수 있습니다. MessageBox.Show (answer.ToString (CultureInfo.InvariantCulture));
  • 이는 수학 연산에 의해 만들어진 모든 답변을 다할 것