“温故而知新”!
本期会教大家做一个控制台的计算器,信息量有点大,希望大家仔细阅读。如果把里面的内容全部看懂,那么恭喜大家,你就已经入门一半了,就是这么神奇。
大家按照下面的思路,自己理一遍,看看能不能回忆起本周内容,能不能回忆起固定格式。
主要内容:
if语句
switch语句
for循环
do while循环
while循环
控制台输入
控制台输出
固定格式:
if语句
if(判断)
{
陈述语句;
}
if(判断)
{
陈述语句1;
}
else
{
陈述语句2;
}
if(判断1)
{
陈述语句1;
}
else if(判断2)
{
陈述语句2;
}
... ...
else if(判断n)
{
陈述语句n;
}
else
{
陈述语句m;
}
switch语句
switch(变量)
{
case 变量值1:
陈述语句1;
break;
case 变量值2:
陈述语句2;
break;
... ...
default:
陈述语句n;
break;
}
for 循环
for(int i=0;i
{
循环体语句;
}
do while 循环
do
{
循环体语句;
}while(判断语句);
while 循环
while(判断语句)
{
循环体语句;
}
控制台输入
Console.ReadLine();
控制台输出
Console.WriteLine(string value);
拓展:
1.“==”与“!=”的区别
如题,“A==B”则翻译为A等于B,“A!=B”为A不等于B。
如果int A=1,int B=1,那么A==B为真true,A!=B为假false。
如果int A=2,int B=1,那么A==B为假false,A!=B为真true。
有点乱吧哈哈,冷静思考下,绕过这个小弯。
2.“||”与“&&”的区别
"A||B"表示"A或者B",如果A或者B至少有一个为真true,则A||B结果为真true。
"A&&B"表示"A与B",如果A与B都为真true,则A&&B结果才为真true。
如果bool A=true, bool B=false, 则A||B为真true,A&&B为假false。
如果bool A=false, bool B=true, 则A||B为真,A&&B为假。
如果bool A=true, bool B=true, 则A||B为真,A&&B真true。
如果bool A=false, bool B=false, 则A||B为假,A&&B为假。
有点绕吧,慢慢理下,送你一张无敌图表法。
3.“全局变量”与“局部变量”
全局变量对和它在同一层的{}都能调用。
局部变量只能在它所在的区域内使用,即当前所在的同一层{},或它的下一层{}中有效,跳出同一层的{},则变量无效。
static void Main(string[] args)
{
string myStr1=string.empty;//全局变量,和下面的循环1和循环2平级,可以直接被他俩调用
while//循环1
{
string myStr2=string.empty;//局部变量,只能用于while循环1,不能在这以外调用
...
}
while//循环2
{
string myStr3=string.empty;//局部变量,只能用于该while循环2,不能在这以外调用
myStr1="可以在这里使用";//全局变量可以在这里使用
//myStr2不能再这里使用,因为myStr2在上面循环1的作用域里面,这里面调用不到
...
}
}
4.break;
用于强制退出当前的循环体,比如
while(...)
{
break;//强制退出当前的while循环,那么下面的do while不会执行了
do
{
break;//退出当前的 do while循环,但是不退出上一层的while循环
}while(...)
}
控制台计算器程序流程图及实例:
static void Main(string[] args)
{
string num1 = string.Empty;
string num2 = string.Empty;
string method = string.Empty;
double result = 0.00;
bool exit = false;
do
{
Console.WriteLine("请选择操作方式:1-加法,2-减法,3-乘法,4-除法,0-退出程序,其余数字不做任何操作");
method = Console.ReadLine();
while (method != "1" && method != "2" && method != "3" && method != "4")
{
if (method == "0")
{
Console.WriteLine("程序将退出");
exit = true;
break;
}
else
{
Console.WriteLine("输入的操作方式数字不对,请重新输入");
Console.WriteLine("请选择操作方式:1-加法,2-减法,3-乘法,4-除法,0-退出程序,其余数字不做任何操作");
method = Console.ReadLine();
}
}
if (!exit)
{
Console.WriteLine("请输入第一个操作数");
num1 = Console.ReadLine();
Console.WriteLine("请输入第二个操作数");
num2 = Console.ReadLine();
switch (method)
{
case "1":
result = Convert.ToDouble(num1) + Convert.ToDouble(num2);
break;
case "2":
result = Convert.ToDouble(num1) - Convert.ToDouble(num2);
break;
case "3":
result = Convert.ToDouble(num1) * Convert.ToDouble(num2);
break;
case "4":
result = Convert.ToDouble(num1) / Convert.ToDouble(num2);
break;
}
if (method == "1" || method == "2" || method == "3" || method == "4")
{
Console.WriteLine("本次操作的结果为:" + result);
}
Console.WriteLine();
}
}
while (method != "0");
Console.ReadKey();
}
输出结果:
源程序下载地址:
链接:https://pan.baidu.com/s/1Fo2nZN3f_rxXU6HOWxPRyA密码:hw79
程序要点:
1.先输入1,2,3和4作为+-*/的判断
2.如果输入0,退出循环
3.如果输入除了0,1,2,3和4以外的字符,提示用户重新输入
4.输入操作数1
5.输入操作数2
6.switch计算结果
7.输出结果
8.继续循环或退出
源程序解释:
static void Main(string[] args)//主程序入口
{
string num1 = string.Empty;//定义字符串型操作数1并赋空值,全局变量
string num2 = string.Empty;//定义字符串型操作数2并赋空值,全局变量
string method = string.Empty;//定义字符串型操作符号类型并赋空值,全局变量
double result = 0.00;//定义双精度浮点型变量,用于存放计算结果,全局变量
bool exit = false;//布尔类型变量,用于判断是否退出程序,全局变量
do//do while循环,while在最下面,成对出现
{
Console.WriteLine("请选择操作方式:1-加法,2-减法,3-乘法,4-除法,0-退出程序,其余数字不做任何操作");//输出操作提示信息给用户
method = Console.ReadLine();//读取用户输入的字符串信息,以回车键结尾
//下面的while循环,用于判断除了1,2,3,4以外的用户操作,并做出提示,不和上面的do配对,属于do的while在该层的{}的}那。
while (method != "1" && method != "2" && method != "3" && method != "4")//如果操作方式都不等于1,2,3和4时才成立,相当于等于0或其他任意字符是则这个method != "1" && method != "2" && method != "3" && method != "4"成立。
{
if (method == "0")//如果用户输入如method的信息等于0,if判断为0是真,将会退出程序
{
Console.WriteLine("程序将退出");//提示用户信息
exit = true;//将布尔类型的变量赋值为真true
break;//强制退出当前的while循环,不会再while循环了
}
else//其他,推理则为除了0,1,2,3和4以外的字符
{
Console.WriteLine("输入的操作方式数字不对,请重新输入");//提示用户
Console.WriteLine("请选择操作方式:1-加法,2-减法,3-乘法,4-除法,0-退出程序,其余数字不做任何操作");//提示再次重新输入操作
method = Console.ReadLine();//重新读取用户输入,后再次进行while循环,不会退出当前while循环
}//结束if语句
}//当前while循环程序段的结尾
if (!exit)//用于判断用户是否输入0,如果是的上面while循环就会将exit赋值true,那么“!exit”则为假false,因为!是取反的意思。假的反面是真,真的反面是假。
{
Console.WriteLine("请输入第一个操作数");//提示用户
num1 = Console.ReadLine();//读取用户输入的第一个字符
Console.WriteLine("请输入第二个操作数");//提示用户
num2 = Console.ReadLine();//读取用户输入的第二个字符
switch (method)//根据上面输入的操作方式,做出运算符的选择
{
case "1"://操作数等于1,执行加法
result = Convert.ToDouble(num1) + Convert.ToDouble(num2);//先将操作数1和2转换成双精度型,然后在进行加法,因为不转换的话就是两个字符想加的结果是连接起来,比如“1”+“2”结果为“12”而不是3,如果1+2结果 才为3,。注意“1”表示字符,而1没有双引号的才为数字,才能进行四则运算。
break;//退出当前switch选择语句
case "2":
result = Convert.ToDouble(num1) - Convert.ToDouble(num2);
break;
case "3":
result = Convert.ToDouble(num1) * Convert.ToDouble(num2);
break;
case "4":
result = Convert.ToDouble(num1) / Convert.ToDouble(num2);//这里其实需要判断num2不能为0的情况,大家自行去补个if()语句
break;
}
if (method == "1" || method == "2" || method == "3" || method == "4")//如果method等于1,2,3或者4中人一个字符,则if()成立,执行下面的结果
{
Console.WriteLine("本次操作的结果为:" + result);//输出操作方式的计算结果
}
Console.WriteLine();//为了输入一行空行,为了和下一次循环分开的清楚点
}
}
while (method != "0");//此处的while和最上的do是一对,因为do{... ...}while是基本的语法格式。如果method不等于0,while判断成立,那么会继续循环到do;如果等于0,则会退出循环
Console.ReadKey();//暂停,用户按下任意键盘上的键,都会退出当前程序
}//整个程序的结尾
本期的小结有点烧脑,会不会有点恐惧?不碍事,大家周末,一点一点的去看,争取全部看懂,看不懂随时问我,给我留言,我会一直陪着大家直到你们入门。
我会坚持目前更新方式,周一到周五早上七点半左右发课程,周六休息,周日总结一周内容。
希望大家白天抽空10到30分钟看看,不一定非要一次性看完,利用零碎的时间。晚上回家,利用半小时把代码敲一遍,运行一下,看看有没有什么问题。有问题给我发信息或者留言,要积极主动,调动大脑神经和细胞。
每天把代码照着教程敲一遍,然后自己不看教程试试,运行成功的小伙伴能在留言区留言成功两字,作为你们对自己的激励。
我知道,很多刚接触编程的人,无法形成编程思维。人的大脑是需要时间去形成一块区域的,这块区域去处理编程思维。所以大家每天看课程,自己动手去编程序,不要光看不练,一定要自己去敲代码。
聚沙成塔,每天一点,水滴石穿,日积月累,必成大器!
扫码或者按住图片关注公众号
领取专属 10元无门槛券
私享最新 技术干货