- 顺序结构
就是从上到下 从左到右 有一定顺序性
- 选择语句
有选择效果的代码块 可嵌套
1.if
bool monsterState true;
if (monsterState==true)
{
Console.WriteLine("攻击");
}
2.if else
bool monsterState true;
if (monsterState==true)
{
Console.WriteLine("攻击");
}
else
{
//不满足if的都进来
Console.WriteLine("不攻击");
}
3.if,else if
如果前面匹配成功后面不执行
string character;
if (character=="战士")
{
Console.WriteLine("装备刀");
}
else if (character=="法师")
{
Console.WriteLine("装备法杖");
}
else
{
//不满足if的都进来
Console.WriteLine("只有拳头");
}
4.switch
类似if else
1.表达式/变量的值只能是整型、char、布尔、string、枚举
1.不允许两个case拥有相同的值
3.case必须对应常量
switch (character)
{
//选择
case "战士":
Console.WriteLine("装备刀");
break;//中断 不加就进入下一个
case "法师":
Console.WriteLine("装备法杖");
break;
default:
Console.WriteLine("只有拳头");
break;
}
专题作业
1.让用户输入一个月份,判断这个月是哪个季节?假定3到4月是春季,5到8月是夏季,9到10是秋季,11、12、1、2月是冬季。这道题必须用switch-case。
2.让用户输入小强的语文、数学和英语成绩,输出以下判断是否正确,正确输出true,错误输出false
a.语文、英语和数学成绩都大于85分;
b.语文、英语和数学至少有一门大于95分;
c.语文和英语至少有一门大于90分且数学不低于80分。
3.使用switch语句完成一个简单的计算器程序,用户输入两个数字,用四则运算符计算结果并显示在控制台上。
4.请用户输入两次,每次输入一个数字,如果用户输入的第一个数大就输出第一个数,如果用户输入的第二个数大就输出第二个数。
5.请用户输入一个字符串,根据这个字符串的长度得出如下结果:
String s = “1234”; 字符串的长度:s.Length
长度:0-56之间: 输出:短消息
长度:57-128之间: 输出:一般消息
长度:129-192之间: 输出:长消息
长度:193-256之间: 输出:超长消息
长度:其他情况:长度超过可发送上限
6.随机产生一个0-5之间的数:(switch)
随机产生的数:0:输出:进入战斗
随机产生的数:1:输出:捡到宝箱
随机产生的数:2:输出:捡到武器
随机产生的数:3:输出:捡到弹药
随机产生的数:4:输出:踩到陷阱
随机产生的数:5:输出:无事件
7.老师问学生,这道题你会做了吗?如果学生答”会了(y)”,则可以放学.如果学生不会做(n),则老师再讲一遍
8.提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁并且小于18,则提示用户是否继续查看(yes、no),如果输入的是yes则提示用户请查看,否则提示”退出,你放弃查看”。
9.请用户输入自身的血压值(高压和低压) 请依据下面标准血压 判断出用户的血压是否正常 若正常 显示血压正常 否则显示用户血压不正常
标准:成人:收缩压:90-140mmHg 舒张压:60-90mmHg
10.某商店T恤的价格为35元/件(2件9折,3件以上8折),裤子的价格为120元/条(2条以上9折).小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱?
//1.让用户输入一个月份,判断这个月是哪个季节?
//假定3到4月是春季,5到8月是夏季,9到10是秋季,
//11、12、1、2月是冬季。这道题必须用switch-case。
//Console.WriteLine($"输入一个月份");
//string month = Console.ReadLine();
//switch (month)
//{
// case "3":
// case "4":
// Console.WriteLine("春");
// break;
// case "5":
// case "6":
// case "7":
// case "8":
// Console.WriteLine("夏");
// break;
// case "9":
// case "10":
// Console.WriteLine("秋");
// break;
// case "11":
// case "12":
// case "1":
// case "2":
// Console.WriteLine("冬");
// break;
// default:
// Console.WriteLine("月份不合法");
// break;
//}
//2.让用户输入小强的语文、数学和英语成绩,
//输出以下判断是否正确,正确输出true,错误输出false
//a.语文、英语和数学成绩都大于85分;
//b.语文、英语和数学至少有一门大于95分;
//c.语文和英语至少有一门大于90分且数学不低于80分。
//Console.WriteLine("输入小强的语文、数学和英语成绩");
//int chineseScore = int.Parse(Console.ReadLine());
//int englishScore = int.Parse(Console.ReadLine());
//int mathScore = int.Parse(Console.ReadLine());
//if (chineseScore > 85 && englishScore > 85 && mathScore > 85)
//{
// Console.WriteLine("语文、英语和数学成绩都大于85分true");
//}
//else if (chineseScore > 95 || englishScore > 95 || mathScore > 95)
//{
// Console.WriteLine("语文、英语和数学至少有一门大于95分true");
//}
//else if (chineseScore > 90 || englishScore > 90 && mathScore >= 80)
//{
// Console.WriteLine("语文和英语至少有一门大于90分且数学不低于80分true");
//}
//else
//{
// Console.WriteLine("false");
//}
//bool isOK = false;
//if (chineseScore > 85 && englishScore > 85 && mathScore > 85)
// isOK = true;
// Console.WriteLine($"语文、英语和数学成绩都大于85分{isOK}");
//if (chineseScore > 95 || englishScore > 95 || mathScore > 95)
// isOK = true;
// Console.WriteLine($"语文、英语和数学至少有一门大于95分{isOK}");
//if (chineseScore > 90 || englishScore > 90 && mathScore >= 80)
// isOK = true;
// Console.WriteLine($"语文和英语至少有一门大于90分且数学不低于80分{isOK}");
//if(isOK==false)
// Console.WriteLine($"{isOK}");
//3.使用switch语句完成一个简单的计算器程序,用户输入两个数字,
//用四则运算符计算结果并显示在控制台上。
//+-*/
//Console.WriteLine("请分别输入两个数");
//int first = int.Parse(Console.ReadLine());
//int second = int.Parse(Console.ReadLine());
//Console.WriteLine("请输入运算符");
//string ope = Console.ReadLine();
//switch (ope)
//{
// case "+":
// Console.WriteLine(first + second);
// break;
// case "-":
// Console.WriteLine(first - second);
// break;
// case "*":
// Console.WriteLine(first * second);
// break;
// case "/":
// Console.WriteLine(first / second);
// break;
//}
//4.请用户输入两次,每次输入一个数字,
//如果用户输入的第一个数大就输出第一个数,
//如果用户输入的第二个数大就输出第二个数。
//Console.WriteLine("请分别输入两个数");
//int first = int.Parse(Console.ReadLine());
//int second = int.Parse(Console.ReadLine());
//Console.WriteLine(first > second ? first : second);
//5.请用户输入一个字符串,根据这个字符串的长度得出如下结果:
//String s = "1234"; 字符串的长度: s.Length
//长度:0 - 56之间: 输出:短消息
//长度:57 - 128之间: 输出:一般消息
//长度:129 - 192之间: 输出:长消息
//长度:193 - 256之间: 输出:超长消息
//长度:其他情况:长度超过可发送上限
//Console.WriteLine("请输入一个字符串");
//string first = Console.ReadLine();
//if (0 <= first.Length && first.Length <= 56)
// Console.WriteLine("短消息");
//else if (57 <= first.Length && first.Length <= 128)
// Console.WriteLine("一般消息");
//else if (129 <= first.Length && first.Length <= 192)
// Console.WriteLine("长消息");
//else if (193 <= first.Length && first.Length <= 256)
// Console.WriteLine("超长消息");
//else
// Console.WriteLine("长度超过可发送上限");
//6.随机产生一个0 - 5之间的数:(switch)
//随机产生的数:0:输出:进入战斗
//随机产生的数:1:输出:捡到宝箱
//随机产生的数:2:输出:捡到武器
//随机产生的数:3:输出:捡到弹药
//随机产生的数:4:输出:踩到陷阱
//随机产生的数:5:输出:无事件
//Random r = new Random();
//switch (r.Next(0, 6))
//{
// case 0:
// Console.WriteLine("进入战斗");
// break;
// case 1:
// Console.WriteLine("捡到宝箱");
// break;
// case 2:
// Console.WriteLine("捡到武器");
// break;
// case 3:
// Console.WriteLine("捡到弹药");
// break;
// case 4:
// Console.WriteLine("踩到陷阱");
// break;
// case 5:
// Console.WriteLine("无事件");
// break;
//}
//7.老师问学生,这道题你会做了吗? 如果学生答"会了(y)",则可以放学.
//如果学生不会做(n),则老师再讲一遍
//Console.WriteLine("这道题你会做了吗?");
//string answer = Console.ReadLine();
//if (answer == "y" || answer == "会了")
// Console.WriteLine("放学");
//else
// Console.WriteLine("再讲一遍");
//8.提示用户输入年龄,如果大于等于18,则告知用户可以查看,
//如果小于10岁,则告知不允许查看,
//如果大于等于10岁并且小于18,则提示用户是否继续查看(yes、no),
//如果输入的是yes则提示用户请查看,否则提示"退出,你放弃查看"。
//Console.WriteLine("请输入年龄");
//int age = int.Parse(Console.ReadLine());
//if (18 <= age)
// Console.WriteLine("可以查看");
//else if (age < 10)
// Console.WriteLine("不允许查看");
//else if (18 > age && age > 10)
//{
// Console.WriteLine("是否继续查看(yes、no)");
// string answer = Console.ReadLine();
// if (answer == "yes")
// Console.WriteLine("请查看");
// else
// Console.WriteLine("退出,你放弃查看");
//}
//9.请用户输入自身的血压值(高压和低压) 请依据下面标准血压
//判断出用户的血压是否正常 若正常 显示血压正常
//否则显示用户血压不正常
//标准:成人:收缩压:90 - 140mmHg 舒张压:60 - 90mmHg
//Console.WriteLine("请依次输入自身的血压值(高压和低压)");
//int highMmHg = int.Parse(Console.ReadLine());
//int lowMmHg = int.Parse(Console.ReadLine());
//if (60 <= lowMmHg && lowMmHg <= 90 && 90 <= highMmHg && highMmHg <= 140)
// Console.WriteLine("血压正常");
//else
// Console.WriteLine("血压不正常");
//10.某商店T恤的价格为35元 / 件(2件9折,3件以上8折),
//裤子的价格为120元 / 条(2条以上9折).
//小明在该店买了3件T恤和2条裤子,请计算并显示小明应该付多少钱 ?
//int t_shirtNum = 3;
//int pantsNum = 2;
//float money = 0;
//if (t_shirtNum == 1)
// money += 35 * t_shirtNum;
//else if (t_shirtNum == 2)
// money += 35 * t_shirtNum * 0.9F;
//else if (t_shirtNum >= 3)
// money += 35 * t_shirtNum * 0.8F;
//if (pantsNum == 1)
// money += 120 * pantsNum;
//else if (pantsNum >= 2)
// money += 120 * pantsNum * 0.9F;
//Console.WriteLine($"{money}");
- 循环语句
1.do while
先执行后判断 至少一次
do
{
//先执行 在判断循环
//true就是无线循环
Console.WriteLine("挂机");
} while (true);
//求10的阶乘n! = n(n-1)(n-2).....2 * 1
int n=10;
int i = 0;
int sum=1;
do
{
sum *= n - i;
i++;
} while (i<n);
Console.WriteLine(sum);
2.while
先判断再执行
while (true)
{
Console.WriteLine("挂机");
}
//求1-100偶数的和
int i = 0;
int sum=0;
while (i<=100)
{
sum += i;
i += 2;
}
Console.WriteLine(sum);
3.for
这个特别常用
//i为起始值 i<8 第八个停止 i++自增
for (int i = 0; i < 8; i++)
{
//这个和
Console.WriteLine($"打第{i}个小怪");
//Console.WriteLine("打第{0}个小怪",i);
}
//1.计算1-1000的和
//int num = 0;
//for (int i = 1; i <= 1000; i++)
//{
// num += i;
//}
//Console.WriteLine(num);
//(首项+末项)*项数/2
//Console.WriteLine((1+1000)*1000*0.5F);
//2.打印如下
//**
//****
//******
//for (int i = 0; i <= 3; i++)//列
//{
// //根据行的规则打印列
// for (int j = 0; j < i * 2+1; j++)//行
// {
// Console.Write("*");
// }
// Console.WriteLine();
//}
//3.打印如下
//*
//***
//*****
//*******
//for (int i = 0; i <= 3; i++)//列
//{
// //根据行的规则打印列
// for (int j = 0; j < i * 2 + 1; j++)//行
// {
// Console.Write("*");
// }
// Console.WriteLine();
//}
- 中断循环
break: 退出当前循环 在循环或分支语句中,遇到break会立即退出并结束当前循环\分支
continue:立即执行下一次循环 在循环中,遇到continue会立即执行下一次循环,后续语句会被忽略
for (int i = 0; i < 8; i++)
{
if (i == 5) break;
Console.WriteLine($"打第{i}个小怪");
}
for (int i = 0; i < 8; i++)
{
if (i == 5) continue;
Console.WriteLine($"打第{i}个小怪");
}
//计算并输出100以内的所有素数(质数)。
//素数:按照素数的定义,在大于1的自然数中,除了1和它自身以外,不能被其它数整除的数即为素数。
for (int i = 1; i < 100; i++)
{
int j = 0;
for (j = 2; j < i; j++)
{
if (i % j == 0)
break;
}
if(i==j)
Console.WriteLine(i);
}
//计算并输出100以内的所有合数
//合数:指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数
for (int i = 1; i < 100; i++)
{
int j = 0;
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
Console.WriteLine(i);
break;
}
}
}
- 练习题目
1.当变量x的值在[1,100]范围内时,下面的C#表达式返回值为“真”的是( )。
(A)1<=x<=100
(B)x>=1 || x<=100
(C)x>1 && x<100
(D)x>=1 && x<=100
2.下面的C#表达式中,描述了数学关系x≥y≥z的是( )。
(A)(x>=y) AND (y>=z)
(B)(x>=y) && (y>=z)
(C)(x>=y>=z)
(D)(x>=y) & (y>=z)
3.当变量x的值在[1,10]或[200,210]范围内时,下列C#表达式返回值为“真”的是( )。
(A)(x>=1) && (x<=10) && (x> = 200) && (x<=210)
(B)(x>=1) || (x<=10) || (x>=200) || (x<=210)
(C)(x>=1) && (x<=10) || (x>= 200) && (x<=210)
(D)(x>=1) || (x< =10) && (x> = 200) || (x<=210)
4.设有C#语句:int a=5,b=4;,则下列表示条件的表达式中值为“假”的是( )。
(A)(a>b)&&(b>0&&a>0)
(B)(b>=0)&&(a<=b ? a+b:a-b)>0
(C)a>0 && !(b>0)
(D)(a<=0)||(a%b>0)
5.执行C#语句序列:for (i = 0; i < 4; i++) 后,变量i的值是( )。
(A)5 (B)4 (C)1 (D)0
填空题
1.
程序设计中,一般用逻辑(与)运算表示某个数据对象的值(),而用逻辑(或)运算表示某个数据对象的值()。
2.
C#语言中规定:在包含了if语句嵌套结构的程序中,else子句与在它前面距它最近的且()if配对。
3.
C#应用程序中,在一个循环结构的循环体内又包含另外一个(),称为循环的 嵌套。
4.
break语句是一条限定转移语句,只能在()使用。
5.
continue语句是一条限定转移语句,只能在()使用。
选项:
(A)完整的循环结构
(B)尚未匹配的
(C)是否在给定范围之内
(D)switch语句结构和循环结构中
(E)完整的for结构
(F)if结构或者while结构中
(G)已经配对的
(H)while结构中
(I)是否在给定范围之外
(J)循环结构的循环体中
编程:
(1)在窗体上输出100~500之间的所有奇数,并计算它们的和。
(2)在窗体上输出100~200之间不能被3整除的所有数。
(3)统计1~1000之内既能被5整除,也能被7整除的数的个数。
(4)从300开始,找出连续100个既能被3整数又能被5整除的数。
(5)计算s = 1! + 2! + 3! + …+ n! (其中n是用户输入的正整数)。
(6)计算出不大于1000 的10个最大的素数。
- 作业
必做任务:
任务1:
让用户输入小茗的语文和数学成绩,输出以下判断是否正确,正确输出true,错误输出false
a、小茗的语文和数学成绩都大于90分;
b、语文和数学有一门是大于90分的。
任务2:
要求用户输入两个数a、b,如果 a 被 b 整除或者a加b大于100,则输出a的值,否则输出 b 的值。
任务3:
让用户输入学员的成绩,然后输出学员的结业考试成绩评测结果。
成绩 >=90 : A
90> 成绩 >=80 : B
80> 成绩 >=70 : C
70> 成绩 >=60 : D
成绩 <60 : E
任务4:
提示用户输入用户名,然后再提示输入密码,如果用户名是“admin”并且密码是“88888”,则提示正确,否则,如果用户名不是admin还提示用户用户名不存在,如果用户名是admin则提示密码错误。
任务5:
提示用户输入用户名,然后再提示输入密码,如果用户名是“admin”并且密码是“88888”,则提示正确,否则,提示用户“用户名或者密码错误”,但如果错误达到3次,则提示用户”您的账户已被冻结”,退出程序。
任务6:
求1-100间的所有奇数和。
任务7:
求1-100间的所有能被3整除的数的和。
任务8:
编程实现如下图列出的图形。
**
*
*
任务9:
让用户输入一个数显示下面内容。
*
**
*
*
任务10:
编程实现如下图列出的图形。
*
*
*
任务11:
编程实现如下图列出的图形。
**
*
*
*
**
任务12:
鸡兔同笼,从上面看有35个头,从下面看有94只脚,请问鸡有几只,兔有几只?
任务13:
玩家进来以后要买筹码;
在每次掷骰子前,
要下注(50~手里剩余的筹码);
接着要选择买大小;
程序要模仿掷骰子,产生一个1~6的随机数
根据掷骰子的结果,判断玩家的输赢,改变玩家的手里的筹码
如果买大,4~6是赢,1~3是输
如果小,1~3是赢,4~6是输
如果赢了,玩家的筹码+=下注金额
如果输了,玩家的筹码-=下注金额
提示玩家是否要退出游戏
玩家手里的筹码小于最小下注金额,要强制玩家退出
注意 :先理清楚思路,从宏观上考虑流程,不要考虑每个步骤的细节。流程搞清楚以后,再琢磨每个步骤的细节。然后写代码。
可选任务:
1.一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?
2.在400—500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?
3.有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?
4.编程求一个四位自然数ABCD,它乘以A后变成DCBA
5.编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.
6.某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这 个自然数.
7.有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来
8.一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.
9.把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已.
10.验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
11.今有四个人,他们得年龄各不相同,他们年龄总和是129,而其中有三个人的年龄是平方数,若倒退15年,这四人中仍有三个人的年龄是平方数,求他们各自的年龄
12.如果两个素数之差为2,这样的两个素数就叫作”孪生数”,找出100以内的所有”孪生数”.