for循环
我们一般在处理已知循环次数的情况下使用for循环,像是input!="end"的这种不行。
for循环的正序和倒序输出
for(表达式1,表达式2,表达式3)
{
循环体
}
表达式1:一般为循环变量,记录循环次数
表达式2:一般为循环条件
表达式3:一般为改变循环条件
执行过程:程序首先执行表达式1,声明了一个循环变量,记录循环次数。然后执行表达式2,判断循环条件是否成立,如果返回结果为true,则执行循环体。当执行完循环体,执行表达式3,然后执行表达式2,继续判断循环条件是否成立,如果不成立,则跳出for循环。
for循环的倒序可以先打出forr,然后点击两下tab键,就会自动生成倒序循环的格式
for (int i = length - 1; i >= 0; i--)
{
}
//请打印1-10
//for (int i = 1; i <= 10; i++)
//{
// Console.WriteLine(i);
//}
//Console.ReadKey();
打印10-1
//for (int i = 10; i >= 1 ; i++)
//{
// Console.WriteLine(i);
//}
//Console.ReadKey();
//for (int i = 10 ; i >= 1; i--)
//{
// Console.WriteLine(i);
//}
//Console.ReadKey();
for循环的循环嵌套
当我们遇到某个事情需要做一遍,另一个事情需要做n遍的时候,使用for嵌套循环!
练习
//找出100-999间的水仙花数
//水仙花数指的是,这个百位数字的
//百位立方+十位的立方+个位的立方==当前这个百位数字,比如153
//for (int i = 100; i <= 999; i++)
//{
// int b = i / 100;
// int s = i % 100 / 10;
// int g = i % 10;
// if (b * b * b + s * s * s + g * g * g == i)
// {
// Console.WriteLine(i);
// }
//}
//Console.ReadKey();
//百位:153/100
//十位:153%100/10
//个位:153%10
乘法口诀表练习
//for (int i = 1; i < 10; i++)
//{
// for (int j = 1; j < 10; j++)
// {
// Console.Write("{0}*{1}={2}\t", i, j, i * j);
// }
// Console.WriteLine();//换行
//}
//Console.ReadKey();
修改上面代码,使其变成三角乘法表
//for (int i = 1; i < 10; i++)
//{
// for (int j = 1; j <= i; j++)
// {
// Console.Write("{0}*{1}={2}\t", i, j, i * j);
// }
// Console.WriteLine();//换行
//}
//Console.ReadKey();
//输入一个数,输出一个加法表
Console.WriteLine("输入一个数,输出一个加法表");
try
{
int n = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i <= n; i++)
{
Console.WriteLine("{0}+{1}={2}\n", i, n - i, n);
}
}
catch
{
Console.WriteLine("输入格式有误");
}
Console.ReadKey();
*找出100内所有的素数(质数)
//只能被1和这个数字本身整除的数字,叫做质数,最小的质数是2
for(int i=2,i<=100,i++)//遍历2-100之间的数字
{
bool b=true;//控制输出的数字
for(int j=2,j<i,j++)//遍历i之前的数字
{
if(i%j==0)//如果i能被j整除,就不是质数,跳出
{
b=fasle;
break;
}
}
if(b==true)
{
Console.WriteLine(i);
}
}
Console.ReadKey();
continue关键字
和之前的break关键字不同,continue关键字的作用是:立刻结束本次循环,判断循环条件,如果成立,进入下一次循环,否则退出循环。
//while (true)
//{
// Console.WriteLine("1");
// //break;
// continue;
// Console.WriteLine("1");
//}
//Console.ReadKey();
这是一个死循环,如果用break跳出,那么这个循环将不再继续,如果使用continue,那么这个死循环会一直继续。
类型转换补充
当我们使用Convert类型转换的时候,成功了就成功了,失败了就会报异常
//int number = int.Parse("123abc");
//Console.WriteLine(number);
//Console.ReadKey();
本质上来说,Convert.ToInt32是从内部调用了int.Parse
int.TryParse
这是一个方法或者函数,尝试将一个字符串转换成int类型。
这里提前了解一点方法的知识:
方法就是帮你做一件事。参数是完成一个方法,必须要提供给这个方法的条件。返回值是调用完这个方法之后得到的结果。
int number = 0;
bool b = int.TryParse("123acc",out number);
Console.WriteLine(b);
Console.WriteLine(number);
Console.ReadKey();
调试
在我们写代码的过程中,并不是一次性全写完的,而是一边写一边改。当我们写完一段程序,想看一下这段程序的执行过程,发现程序并没有按照你想象的样子执行,这个时候我们就可以调试一下,来判断代码在哪里出现了问题。
有三种调试方法
f11逐语句调试,f10逐过程调试,断点调试
三元表达式
三元表达式算是if else的简化写法
表达式1?表达式2:表达式3;
表达式1一般为一个关系表达式,如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值
如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值
注意:表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致
//提示用户输入姓名,不是老赵,全是流氓
//Console.WriteLine("输入姓名");
//string name = Console.ReadLine();
//string names = name == "老赵" ? "老赵" : "流氓";
//Console.ReadKey();