主要内容
- 判断闰年小练习
- 基本程序结构前瞻
- if \/ else \/ else if
- 四个分支结构练习
判断闰年小练习
Console.WriteLine("请输入要判断的年份");
int year = Convert.ToInt32(Console.ReadLine());
//闰年的两个条件:
//1. 能被400整除
//2. 能被4整除, 但不能被100整除
bool b = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
Console.WriteLine(b);
Console.ReadKey();
逻辑与的优先级 大于 逻辑或
逻辑与也可以用一个”&”的符号
区别在于:两个”&”如果遇到一个false, 之后的表达式就不再判断
一个”&”会把所有表达式全部判断一遍
结论是, 两个的效率更高, 推荐使用(逻辑或同理)
结构
- 顺序结构: 程序从Main函数进入, 从上至下一行一行地执行, 不会跳行
- 分支结构: if if-else
- 选择结构: if else-if switvh-case
- 循环结构: while do-while for foreach
- …
if结构
- 语法:
if(判断条件){
要执行的代码;
}
- 判断条件: 一般为关系表达式 或 布尔类型的值
- 执行过程: 执行到if处, 首先判断括号中的判断条件
- 若成立(即返回True), 则执行if后接的大括号中的代码
- 若不成立(即返回False), 则跳过if后接的大括号中的代码, 继续向下执行
- 特点: 先判断, 再选择性执行代码
- 注意: 花括号外不加封号”;”
if-else 结构
- 语法:
if(判断条件成立){
条件满足时执行的代码;
}else{
条件不满足时执行的代码
}
- 特点: 先判断再执行, 选择其中一块代码执行
- 注意: else只和最近的if的配对
if else-if 结构
- 作用: 用来处理多条件的区间性的判断
(之后的switch是处理多条件的定值性的判断) - 语法:
if(判断条件){
要执行的代码;
}else if(判断条件){
要执行的代码
}else if(判断条件){
要执行的代码
}else if(判断条件){
要执行的代码
}else{
要执行的代码
}
- 特点: 只要有一个条件成立了, 就进入分支运行代码, 没有就执行else, 最后跳出结构
四个练习
练习1
- 三个数字找最大
//获取三个数字
Console.WriteLine("请输入第一个数字");
double n1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入第二个数字");
double n2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入第三个数字");
double n3 = Convert.ToDouble(Console.ReadLine());
//1和2比
if (n1 > n2)//1>2
{
if (n1 > n3)//1>3
{
Console.WriteLine(n1);
}
else//3>1>2
{
Console.WriteLine(n3);
}
}
else//2>1
{
if (n3 > n2)//3>2>1
{
Console.WriteLine(n3);
}
else//2>3 2>1
{
Console.WriteLine(n2);
}
}
Console.ReadKey();
要学会写注释, 这对以后的大项目很有帮助
练习2
- 输密码, 如果是88888就提示正确, 如果错误提示再输一遍, 二次输入正确提示正确, 二次输入错误就提示错误
Console.WriteLine("请输入密码");
string pwd = Console.ReadLine();
if (pwd == "88888")
{
Console.WriteLine("登陆成功");
}
else//输入错误再次输入
{
Console.WriteLine("密码错误, 请重新输入密码");
pwd = Console.ReadLine();
if(pwd == "88888")
{
Console.WriteLine("搞死了, 终于正确了, 登陆成功");
}
else
{
Console.WriteLine("两次输入都错误, 程序结束");
}
}
Console.ReadKey();
练习3
- 分别输入用户名和密码, admin 和 88888, 如果都对就登陆成功
如果用户名错就提示用户名不存在
用户名正确密码错也要提示
//接收信息
Console.WriteLine("输入用户名");
string name = Console.ReadLine();
Console.WriteLine("输入密码");
string pwd = Console.ReadLine();
//第一种情况 都正确
if (name == "admin" && pwd == "88888")
{
Console.WriteLine("登陆成功");
}
else if (name == "admin") //密码错
{
Console.WriteLine("密码错误");
}
else
{
Console.WriteLine("用户名错误或不存在");
}
Console.ReadKey();
用!=会方便一些
练习4
- 询问用户年龄, 如果大于等于18, 提示可以查看
如果大于等于10并且小于18, 询问是否继续查看(yes or no)
用户输yes就提示继续查看, 否则提示放弃查看
//接收信息
Console.WriteLine("请问年龄");
int age = Convert.ToInt32(Console.ReadLine());
if (age >= 18)
{
Console.WriteLine("看吧, 早晚要知道的");
}
else if (age < 10)
{
Console.WriteLine("滚蛋, 回家吃奶去");
}
else
{
Console.WriteLine("确定要看么?(yes/no)");
string input = Console.ReadLine();
if (input == "yes")
{
Console.WriteLine("看吧, 后果自负");
}
else
{
Console.WriteLine("乖孩子, 回家吃奶去");
}
}
Console.ReadKey();
车门焊死
小贴士
- 整个程序最后如果太多花括号就会看不清
要记住, 倒数第三个花括号是Main函数的花括号, 代码在那里截止