1、程序调试
1)、写完一段程序后,想看一下这段程序的执行过程。
2)、当你写完这段程序后,发现,程序并无按照你想象的样子去执行。算法
调试方法:
1)、F11逐语句调试(单步调试)
2)、F10逐过程调试(方法时候开始用)
3)、断点调试
程序运行到断点处,就不在往下执行dom
2、for循环
语法:
for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1通常为声明循环变量,记录循环的次数(int i=0;)
表达式2通常为循环条件(i<10)
表达式3通常为改变循环条件的代码,使循环条件终有一天再也不成立(i++)。
执行过程:程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,
而后执行表达式2,判断循环条件是否成立,若是表达式2返回的结果为true,
则执行循环体。当执行完循环体后,执行表达式3,而后执行表达式2继续判断循环条件是否成立,
若是成立则继续执行循环体,若是不成立,则跳出for循环。ide
for小练习
//求1-100之间的全部整数和,偶数和,奇数和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 != 0)
{
sum += i;
}
}
Console.WriteLine(sum);
Console.ReadKey();函数
/找出100-999间的水仙花数 //水仙花数指的是 这个百位数字 //百位的立方+十位的立方+个位的立方==当前这个百位数字 //百位:153/100 十位:153%100/10 个位:153%10 int bai = 0; int shi = 0; int ge = 0; for (int i = 100; i < 1000; i++) { bai = i / 100; shi = i % 100 / 10; ge = i % 10; if ((bai * bai * bai) + (shi * shi * shi) + (ge * ge * ge) == i) { Console.WriteLine(i); } } Console.ReadKey(); //乘法口诀表(特别注意console.writeline起到的是j循环换行的做用,j<=i是由于j循环几回,式子就打印几回) for (int i = 1; i <=9; i++) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2}\t", i, j, i * j); } Console.WriteLine();//换行用的 } Console.ReadKey(); //让用户输入一个数,给出加法式子 Console.WriteLine("请输入一个数"); int number = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i <= number; i++) { Console.WriteLine("{0}+{1}={2}", i,number-i, number); } Console.ReadKey();
3、int.TryParse
int.parse、double.parse.............(出错抛异常)
尝试着将一个字符串转换成int类型。
conver调用的就是parse,因此效果是同样的
//使用convert进行转换,成就成了,不成抛异常
//int numberOne = Convert.ToInt32("123abc");
//parse也是同样,区别在于convert调用的是Parse,parse效率更高
//int numberTwo = int.Parse("123abc");性能
//Tryparse失败,不抛异常,性能更高,不成功将变量赋值为0 int number = 1; //方法 参数 返回值 bool b = int.TryParse("123abc", out number); Console.WriteLine(b); Console.WriteLine(number); //称为方法或者函数,这个方法就是将字符串转换为int类型 Console.ReadKey(); /* 循坏录入5我的的年龄并计算平均年龄,若是了录入的数据出现负数或大于 100的数,当即中止输入并报错。(这题还有反序的作法,很简单) */ int sum = 0; bool c = true; for (int i = 1; i <= 5; i++) { try { Console.WriteLine("请输入第{0}我的的年龄", i); int age = Convert.ToInt32(Console.ReadLine()); if (age >= 0 && age <= 100) { sum += age; } else { Console.WriteLine("输入的年龄范围不对,退出程序!"); c = false; break; } } catch { Console.WriteLine("输入的内容不能转换成年龄,退出程序!"); c = false; break; } } if (c) { Console.WriteLine("5我的的平均年龄是:{0}", sum / 5); } Console.ReadKey(); /* 在while中用break实现要求用户一直输入用户名和密码,只要不是admin/888888 就一直提示要求从新输入,若是正确则提示登陆成功 */ string userName = ""; string userPwd = ""; while (true) { Console.WriteLine("请输入用户名"); userName = Console.ReadLine(); Console.WriteLine("请输入密码"); userPwd = Console.ReadLine(); if (userName == "admin" && userPwd == "888888") { Console.WriteLine("登陆成功"); break; } } Console.ReadKey(); /* 1-100之间的整数相加,获得累加值大于20的当前述(好比:1+2+3+4+5+6=21)结果6 (这题开始没读懂提议,因此每累加一次都将sum归零一次,这样就求得1-100全部20的累加数,若是按照题意,只须要打印6则将sum=0替换为break;) */ int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; if (sum >= 20) { console.writeline(i); sum = 0; } } console.readkey();
4、continue关键字和质数
continue:当即结束本次循环,判断循环条件若是成立,则进入下一次循环,不然退出循环调试
//计算1-100之间的数,除了能被7整除的数的和 int sum = 0; int i = 0; while (i <= 100) { if (i % 7 == 0) { i++; continue; } else { sum += i; i++; } } Console.WriteLine(sum); Console.ReadKey(); //找出100之内的全部素数(这题是初级算法题,bool放第一个for循环里面,由于每次都要将bool值重置回来,否则就一直都是false) //素数就是质数:只能被1和这个数字自己整除的数字,1不算! for (int i = 2; i <= 100; i++) { bool b = true; for (int j = 2; j < i; j++) { //除尽说明不是质数,不必在继续下去 if (i % j == 0) { b = false; break; } } if (b) { Console.WriteLine("质数有{0}", i); } } Console.ReadKey();
4、三元表达式
语法:
表达式1?表达式2:表达式3;
表达式1通常为一个关系表达式。
若是表达式1的值为true,那么表达式2的值就是整个三元表达式的值。
若是表达式1的值为false,那么表达式3的值就是整个三元表达式的值。
注意:表达式2的结果类型必须跟表达式3的结果类型一致,而且也要跟整个三元表达式的结果类型一致。code
//让用户输入两个数字比两个数字的大小 try { Console.WriteLine("输入第一个数字"); int numberOne = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("输入第二个数字"); int numberTwo = Convert.ToInt32(Console.ReadLine()); int max = numberOne > numberTwo ? numberOne : numberTwo; Console.WriteLine(max); } catch { Console.WriteLine("输入的数字不能正确被转换,退出程序!"); } Console.ReadKey(); //让用户输入姓名,只要不是老赵,就都返回杂种 Console.WriteLine("请输入姓名"); string name = Console.ReadLine(); string result = name == "老赵" ? "淫才啊" : "杂种啊"; Console.WriteLine(result); Console.ReadKey();
5、随机数
//产生随机数
//1。建立可以产生随机数的对象
Random r = new Random();
//2.让产生随机数的这个对象调用方法来产生随机数
int rNumber = r.Next(1, 10);
Console.WriteLine(rNumber);
Console.ReadKey();对象
//输入名字随机显示这我的上辈子是什么人 //1.建立可以产生随机数的对象 //2.产生随机数 Console.WriteLine("输入你的姓名"); string name = Console.ReadLine(); Random r = new Random(); int n = r.Next(1, 7); switch (n) { 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; case 6:Console.WriteLine("陈近南"); break; } Console.ReadKey();