C#基础学习笔记(四)

C#基础学习笔记(四)

1、程序调试

  • 写完一段程序后,想看一下这段程序的执行过程。

  • 当你写完这段程序后,发现,程序并没有按照你想象的样子去执行。

  • 调试方法:

  1. F11逐语句调试(单步调试)
  2. F10逐过程调试
  3. 断点调试

2、for循环

语法:

for(表达式1;表达式2;表达式3)

{
	循环体;
}
  • 表达式1一般为声明循环变量,记录循环的次数(int i=0;)
  • 表达式2一般为循环条件(i<10)
  • 表达式3一般为改变循环条件的代码,使循环条件终有一天不再成立(i++)。

执行过程:

程序首先执行表达式1,声明了一个循环变量用来记录循环的次数,

然后执行表达式2,判断循环条件是否成立,如果表达式2返回的结果为true,

则执行循环体。当执行完循环体后,执行表达式3,然后执行表达式2继续判断循环条件是否成立,

如果成立则继续执行循环体,如果不成立,则跳出for循环。

例子:

#region 循环已知次数的用for
//打印10遍 北京欢迎你
#region 用while的
int i = 0;
while (i <= 10)
{
    Console.WriteLine("北京欢迎你");
    i++;
}
#endregion
#region for循环
//第一次执行完循环体之后才加1
for (int i = 0; i <= 10; i++)
{
    Console.WriteLine("北京欢迎你{0}", i);
}
#endregion

for循环的正序和倒序输出:

#region for循环的正序和倒序输出
//打印1-10
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(i);
}

//打印10-1
for (int i = 10; i > 0; i--)
{
    Console.WriteLine(i);
}
#endregion

练习:

#region 练习1
//求1-100间的所有整数和 偶数和 奇数和 用2去取余
int sum = 0;
int sum1 = 0;
int sum2 = 0;
for (int i = 1; i <= 100; i++)
{
    sum += i;
}
//for (int i = 1; i <= 100; i++)
//{
//    if (i % 2 == 0)
//    {
//        sum1 += i;
//    }
//}
for (int i = 2; i <= 100; i += 2)
{
    sum1 += i;
}
for (int i = 1; i <= 100; i += 2)
{
    sum2 += i;
}
Console.WriteLine("1-100的整数和是{0}", sum);
Console.WriteLine("1-100的偶数和是{0}", sum1);
Console.WriteLine("1-100的奇数和是{0}", sum2);
#endregion

#region 练习2
//找出100-999间的水仙花数?
//这个数字百位的立方+十位的立方+个位的立方==当前的的百位数字
//153 1+125+27=153
//百位:153/100
//十位:153%100/10
//个位:153%10
for (int i = 100; i <= 999; i++)
{
    int bai = i / 100;
    int shi = i % 100 / 10;
    int ge = i % 10;
    if ((Math.Pow(bai, 3) + Math.Pow(shi, 3) + Math.Pow(ge, 3)) == i)
    {
        Console.WriteLine("水仙花数有{0}", i);
    }
}
#endregion
#region for循环的嵌套
//当一个事情要做一遍,而另一个事情要做N遍的时候
for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 10; j++)
    {
        Console.WriteLine("Hello World i循环了{0}次,j循环了{1}次", i, j);
    }
}
#endregion

#region 练习3

#region 完整的
输出九九乘法表(循环的嵌套)
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= 9; j++)
    {
        //Console.WriteLine("{0}×{1}={2}", i, j, i * j);
        Console.Write("{0}×{1}={2}\t", i, j, i * j);
    }
    Console.WriteLine();//换行
}
#endregion

#region 斜的
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        //Console.WriteLine("{0}×{1}={2}", i, j, i * j);
        Console.Write("{0}×{1}={2}\t", i, j, i * j);
    }
    Console.WriteLine();//换行
}
#endregion
#endregion

#region 练习4
//输入3 显示
//0+3=3
//1+2=3
//2+1=3
//3+0=3
Console.WriteLine("请输入一个数字");
int number = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i <= number; i++)
{
    Console.WriteLine("{0}+{1}={2}", i, number - i, number);
}
#endregion

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、int.TryParse

int.parse

尝试着将一个字符串转换成int类型。

#region 练习1
//练习1: 循环录入5个人的年龄并计算平均年龄,
//如果录入的数据出现负数或大于100的数,立即停止输入并报错.
int sum = 0;
bool b = true;
for (int i = 1; i <= 5; i++)
{
    Console.WriteLine("输入第{0}个人的年龄", i);
    try
    {
        int age = Convert.ToInt32(Console.ReadLine());  //会异常
        if (age >= 0 && age <= 100)
        {
            sum += age;
        }
        else
        {
            Console.WriteLine("输出错误跳出");
            b = false;
            break;
        }
    }
    catch
    {
        Console.WriteLine("输入年龄不正确,退出!");
        //严谨
        b = false;
        break;
    }
}
if (b)
{
    //这样写错误跳出的时候也会执行,加判断
    Console.WriteLine("这5个人的平均年龄是{0}", sum / 5);
}
#endregion
#region 练习2
//练习2:在while中用break实现要求用户一直输入用户名和密码,
//只要不是admin、88888就一直提示要求重新输入,如果正确则提登录成功.
string name = "";
string pwd = "";
while (true)
{
    //直接用死循环做,用break跳出
    Console.WriteLine("请输入用户名");
    name = Console.ReadLine();
    Console.WriteLine("请输入密码");
    pwd = Console.ReadLine();
    if (name == "admin" && pwd == "88888")
    {
        Console.WriteLine("登陆成功");
        break;
    }
    else
    {
        Console.WriteLine("输入错误,重新输入");
    }
}
#endregion
#region 练习3
//1~100之间的整数相加,得到累加值大于20的当前数
//(比如: 1 + 2 + 3 + 4 + 5 + 6 = 21)结果6
//sum>=20
int sum = 0;
for (int i = 1; i <= 100; i++)
{
    sum += i;
    if (sum >= 20)
    {
        Console.WriteLine("加到{0}的时候,总和大于20", i);
        break;
    }
}
#endregion

4、Continue(S)

立即结束本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环.

举例:运动员跑步喝水的例子

比如:我编写代码的时候,上个厕所,回来继续写代码

在这里插入图片描述

练习:

#region 示例
while (true)
{
    Console.WriteLine("Hello World");
    //break;
    continue;   //死循环,所以也和if判断连用
}
#endregion
#region 练习1
//练习1:用 while continue实现计算1到100(含)
//之间的除了能被7整除之外所有整数的和。
int sum = 0;
int i = 1;
while (i <= 100)
{
    if (i % 7 == 0)
    {
        i++;
        continue;
    }
    sum += i;
    i++;
}
Console.WriteLine(sum);
#endregion
#region 练习2
//找出100内所有的素数
//素数/质数:只能被1和这个数字本身整除的数字
//1不是质数
//判断方法:用这个数字和前面的数字分别取余如果都除不尽则是质数
for (int i = 2; i <= 100; i++)  //只循环
{
    bool b = true;  //注意bool放在哪里
    for (int j = 2; j < i; j++) //前一个数计算
    {
        if (i % j == 0)
        {
               b = false;
           //能整除的不是
           break;
        }
    }
    if (b)
    {
        Console.WriteLine(i);   //加条件输出bool
    }
}
#endregion

5、三元表达式

语法:

表达式1?表达式2:表达式3;

表达式1一般为一个关系表达式。

如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值。

如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值。

注意:表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致。

举例: bool result = 5 > 3 ? true : false;

会用就可以了

#region 初识三元表达式
//使用if else可以完成的工作也可以使用三元表达式
//计算两个数的大小,求最大值
Console.WriteLine("请输入第一个数字");
int n1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入第二个数字");
int n2 = Convert.ToInt32(Console.ReadLine());
#region 三元表达式
//表达式1?表达式2:表达式3;
//表达式1一般为一个关系表达式。
//表达式1的值为true:返回2
//表达式1的值为false:返回3
int max = n1 > n2 ? n1 : n2;
Console.WriteLine(max);
#endregion
 
#region if else
if (n1 > n2)
{
    Console.WriteLine(n1);
}
else
{
    Console.WriteLine(n2);
}
#endregion
#endregion
 
#region 练习2
//输入如果不是王晶,就输出流氓
Console.WriteLine("请输入姓名");
string name = Console.ReadLine();
#region if else
if (name == "王晶")
{
    Console.WriteLine("天才");
}
else
{
    Console.WriteLine("流氓");
}
#endregion
#region 三元
string result = name == "王晶" ? "天才" : "流氓";
Console.WriteLine(result);
#endregion
#endregion
 
Console.ReadKey();

6、随机数产生

Random r=new Random();

Int number=r.Next(1,11);产生1-10的数

输入名字随机显示这个人上辈是什么样的人

#region 随机数示例
产生随机数
1、创建能够产生随机数的对象
Random r = new Random();
while (true)
{
    //2、让产生随机数的这个对象调用方法来产生随机数
    int rNumber = r.Next(1, 10);//左闭右开
    Console.WriteLine(rNumber);
    Console.ReadKey();
}
#endregion
 
#region 练习
//输入名字随机显示这个人上辈子是什么的人
//思路
//1、创建能够产生随机数的对象
//2、产生随机数1~7
Random r = new Random();
while (true)
{
    int rNumber = r.Next(1, 7);
    Console.WriteLine("请输入一个名字");
    string name = Console.ReadLine();
    switch (rNumber)
    {
        case 1:
            Console.WriteLine("{0}上辈子是厨师", name);
            break;
        case 2:
            Console.WriteLine("{0}上辈子是司机", name);
            break;
        case 3:
            Console.WriteLine("{0}上辈子是警察", name);
            break;
        case 4:
            Console.WriteLine("{0}上辈子是医生", name);
            break;
        case 5:
            Console.WriteLine("{0}上辈子是老师", name);
            break;
        case 6:
            Console.WriteLine("{0}上辈子是售货员", name);
            break;
    }
    Console.ReadKey(); 
}
#endregion

7、总结

  • 顺序结构:语句顺序执行

  • 分支结构:语句在满足条件下执行

  • if, if-else, if-else if, switch-case 表1?表2 :表3(三元)

  • 循环结构:语句在满足条件下循环执行多次

  • while, do-while, for foreach

  • 跳转语句

  • break(跳出当前循环), continue(大家观察),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值