C#入门学习——6

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();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值