循环语句
do...while
do-while第一次无条件进入循环体,先循环 再判断
string username; //定义账号 string pwd; //定义密码 do //先进入循环 { Console.WriteLine("请输入账号"); username = Console.ReadLine(); Console.WriteLine("请输入密码"); pwd = Console.ReadLine(); } while (username != "admin" || pwd != "888888"); //判断条件,如果满足则退出,不满足则继续循环
for
练习:打印一个等腰三角形
// * // *** // ***** // ******* // ********* //*********** // ....... // 第 10 行 //先分析,行与列的关系 r表示行, c表示列 //* r = 1 c = 1 //*** r = 2 c = 3 //***** r = 3 c = 5 //******* r = 4 c = 7 //********* //*********** // ....... // 第 10 行 // c = 2 * r - 1 //先将第一行,多少星星打印出来,不考虑空格 //再考虑每行前面的空格数 r表示行 s表示该行的空格数 // // .... // .... // .... // .... // .... // ************* r = 7 s = 3 // *************** r = 8 s = 2 // ***************** r = 9 s = 1 //******************* r = 10 s = 0 // s = 10 - r //最大的行数 int maxRow = 15; //外侧循环控制行 for (int r = 1; r <= maxRow; r++) { //内侧循环控制当前行的列 //打印当前行星星之前,先将当前行前面的空格打印出来 //先计算当前行的空格数 int spaceCount = maxRow - r; for (int i = 1; i <= spaceCount; i++) { Console.Write(" "); } //先计算当前行对应多少个星星 int starCount = 2 * r - 1; for (int c = 1; c <= starCount; c++) { Console.Write("*"); } //当前行打印完毕,需要换行 Console.WriteLine(); }
结果:
练习2:九九乘法表
/* 1*1=1 r = 1 c = 1 1*2=2 2*2=4 r = 2 c = 2 1*3=3 2*3=6 3*3=9 r = 3 c = 3 ............. * */ //分析行r 和列c 的关系 //先分析 第几行有多少列 c = r //每一项的内容 c * r = 结果 //控制行的循环 for (int r = 1; r <= 9; r++) { //c <= r 当前是第n行,该行最多n列 for (int c = 1; c <= r; c++) { //通过每列以制表符分隔 // c * r = 结果 Console.Write("{0}*{1}={2} ", c, r, c * r); } Console.WriteLine(); }
效果:
练习3:水仙花数
static void Main(string[] args) { //水仙花数:一个三位数的每位数字的立方和等于这个数本身 for (int i = 100; i <= 999; i++) //水仙花数是三位数,所以循环范围是100-999 { int hundreds = i / 100; //除以100 得到百位的数字 int tens = i / 10 % 10; //除以10 得到一个百位和十位组合的两位数,取余10,过滤掉百位的数字,最终得到的就是十位上的数字 int units = i % 10; //取余10,得到个位数字 if (i==(hundreds*hundreds*hundreds+tens*tens*tens+units*units*units)) //判断每位数字的立方和是不是等于数字本身 { Console.WriteLine(i); //打印 } } }
结果:
总结
1.while:先判断条件,再执行循环体;当满足条件时,继续执行循环体
2.do...while:先执行一次循环体,再判断条件;当满足条件时,继续执行循环体;当无需考虑条件先执行一次循环体时,考虑使用do...while语句
3.for:当明确执行次数时,考虑使用for循环比while循环更加简单
复杂数据类型
基本数据类型:数据结构中仅有一个成员
复杂数据类型:数据结构中可包含多个成员
enum枚举
声明枚举类型
定义枚举类型必须放在函数外,枚举名,枚举项(值)通常都使用帕斯卡命名法
使用枚举类型
使用枚举类型定义枚举变量
myEnum my;
赋值
给枚举变量赋值
my = myEnum.A
注意
枚举类型和int和string的转换
枚举与int转换
使用强制转换符()转换
枚举与string转换
枚举转字符串
字符串转枚举
try-catch语句
保护代码,避免出现程序崩溃