您的位置:首页 > 编程语言 > C#

第四课输入时的细节处理——C#计算器编程教学

2016-05-04 15:10 477 查看
第一课中讲到,算式是有规矩的,不能任何输入都作有效输入,所以判断是否有效输入,这是第三课讲到了AddCaclString方法的负责处理。今天就专门讲这个方法。

先上代码:

private void AddCaclString(bool isDecimal, bool isOP, string str)
{
if (!isDecimal && !isOP)
{
if (str == "0" && CaclString == "0")
{
return;//这是什么情况?你自己想。
}
CaclString += str;
isOPAdded = false;//你得先添加Cacl的私有变量
}
else
{
if (isDecimal)
{
if (!haveDecimal)
{
CaclString += str;
haveDecimal = true;//你得先添加Cacl的私有变量
isOPAdded = false;
}
}
else
{
if (isOP && CaclString != "")
{
if (!isOPAdded)
{
CaclString += str;
isOPAdded = true;
haveDecimal = false;
}
else
{
CaclString = CaclString.Remove(CaclString.Length - 1, 1) + str;//这又是什么情况?
isOPAdded = true;
haveDecimal = false;
}
}
}
}
}
这里说到了要添加私有变量,就是协助判断输入的有效性和顺序的严谨性。

private bool haveDecimal = false;//是否已输入小数点。
private bool isOPAdded = false;//是否已输入操作符。
所谓私有,就是外界不知道的,自己在操作过程中定义的变量是为了协助判断。这种编程思想必须了解和掌握,毕竟就是WinForm中的每一个控件都会有很多控制私有变量,编程就是要有这种添加辅助变量的基本素养。

那么这两个变量是干什么用的呢?

算式输入小数点、数字、运算符,你得判断现在输入在什么位置,是还是继续输入数字,还是输入小数点,本数字已经输入小数点了又再次输入小数点当然是作无效判断,那么输入了操作符,意思就是输入下一个数字,那么又进入下一轮判断,如此循环而已。

这段程序解决了输入判断有效性的问题,如果让你自己写,会是个什么样子?可能还有漏洞,比如我只是解决了算式开头输入0后不能输入其它数字的问题,但中间 数字没有解决。这其实无关程序运行结果,所以我没有再考虑这个问题。

第四课结语。

判断往往需要辅助变量,善于添加辅助变量是程序员的基本能力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: