第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

計(jì)算器問題:只得到我輸入的第二個(gè)值

計(jì)算器問題:只得到我輸入的第二個(gè)值

C#
qq_遁去的一_1 2021-10-24 19:41:22
我創(chuàng)建了一個(gè)基本的計(jì)算器,但是每次我輸入第二個(gè)值并按下相等按鈕時(shí),我都沒有得到任何結(jié)果。只有我第二次輸入的值。我的 +-*/ 方法在一個(gè)單獨(dú)的類中。解決此問題的最佳方法是什么?這可能是一個(gè)簡(jiǎn)單的錯(cuò)誤,但我找不到它。你能否也請(qǐng)給我解釋一下我做錯(cuò)了什么。提前致謝。public sealed partial class Calculator : Page{    public double num01, num02;    int operater;    public Calculator()    {        this.InitializeComponent();    }    private void btn1_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text =txtcalcdisplay.Text+ "1";              }    private void btn2_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "2";                }    private void btn3_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "3";    }    private void btn4_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "4";            }    private void btn5_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "5";    }    private void btn6_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "6";    }    private void btn7_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "7";    }    private void btn8_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "8";    }    private void btn9_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = txtcalcdisplay.Text + "9";    }    private void Clear_Click(object sender, RoutedEventArgs e)    {        txtcalcdisplay.Text = string.Empty;    }    private void btnsubtract_Click(object sender, RoutedEventArgs e)    {        num01 = Convert.ToDouble(txtcalcdisplay.Text);        txtcalcdisplay.Text = "";        operater = '1';    }    private void btnadd_Click(object sender, RoutedEventArgs e)    {        num01 = Convert.ToDouble(txtcalcdisplay.Text);        txtcalcdisplay.Text = "";        operater = '2';    }
查看完整描述

2 回答

?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊

我不是 100% 確定,但我相當(dāng)確定這與您的變量operater是 anint但您正在為其分配一個(gè)字符的事實(shí)有關(guān)(這是有效的 - 字符可以分配給 int)然后比較它回到整數(shù)(例如做1 == '1')


int x = '1';

Console.WriteLine(x); // outputs 49

Console.WriteLine(x == 1); // outputs false

因此,要修復(fù)它,請(qǐng)使用 switch 中的字符:


switch(operater){

   case '1': ...

}

或者分配整數(shù) 1,2,3,4 而不是字符 '1','2,'3','4'


private void btnadd_Click(object sender, RoutedEventArgs e)

{

    num01 = Convert.ToDouble(txtcalcdisplay.Text);

    txtcalcdisplay.Text = "";

    operater = 2; // here

}


查看完整回答
反對(duì) 回復(fù) 2021-10-24
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

因此,在您操作的點(diǎn)擊處理程序(藥粥+, - ,*,/等)你是你設(shè)定operater變量角色'1','2'等好了,你的operater變量是一個(gè)int。但是等等,您不應(yīng)該將 a 分配char給 anint嗎?!好吧,編譯器在這里做了一個(gè)隱式轉(zhuǎn)換(語言規(guī)范說它應(yīng)該)。


因此,當(dāng)您這樣做時(shí),最終會(huì)發(fā)生的operater = '1'是operater分配了 49 ('1'的 ASCII 值)。然后當(dāng)你到達(dá)你的 equals 按鈕點(diǎn)擊處理程序時(shí),它會(huì)點(diǎn)擊那個(gè) switch 語句。你猜怎么著?你沒有 49 的情況。所以什么也沒發(fā)生,你一直看到你的第二個(gè)數(shù)字作為屏幕上的文本。


因此,要修復(fù)它,請(qǐng)刪除您operater在操作員處理程序中分配給的數(shù)字周圍的單引號(hào)。IE:


private void btnsubtract_Click(object sender, RoutedEventArgs e)

{

    num01 = Convert.ToDouble(txtcalcdisplay.Text);

    txtcalcdisplay.Text = "";

    operater = 1;  // <-- change this line to be like this, removed the single quotes

}


查看完整回答
反對(duì) 回復(fù) 2021-10-24
  • 2 回答
  • 0 關(guān)注
  • 230 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)