第一周学习内容

#控制台程序
Console.WriteLine(); 打印输出
Console.ReadLine(); 读入用户输入的
Console.ReadKey(); 唯一用到的地方就是防止控制台程序立即关闭
string s = Console.ReadLine();把用户敲入的一行文字存入到字符串类型的变量(容器)s中
占位符:{0}的个数必须和参数的个数一样,是一一对应关系。序号从0开始
占位符的使用
#C#的基本语法占位符的使用
从上到下一条一条执行;
注意大小写(string和String);
函数参数用()包围;
两句代码用";"分割,注意要英文形式;
注释有单行注释、多行注释、批量注释和反注释。

#变量、变量的命名、基本数据类型
变量就是存放数据的容器;
定义方法:类型 变量名;如(int i3)
不同类型的容器放不同的东西(不能在int类型中放字符串);
变量的名字第一个字符必须是字母或下划线(蓝色就是关键字);
变量只能声明一次,但可以多次赋值;
常用的数据类型:
int 取整(32位)
long 取整范围比 int 大(64位)
char 字符(赋值时用单引号)
string 字符串(赋值时用双引号)
bool 只有true和false

转义符“\”:\表示不要把\后的双引好当成字符串的开始或结尾;
@:表示字符串中的\不当成转义符;还可以定义多行文本。

简单的类型转换:
Convert.ToInt32、 Convert.ToString
int i = Convert.ToInt32(Console.ReadLine());

#运算符、赋值、布尔运算
运算符:+、-、*(乘)、/(除)、%(求余);
+可以用作字符串连接,其他不可以;
++(自增)、–(自减);
运算的优先级,()最先;

练习:让用户输入两个数,打印出两个数的和。

Console.WriteLine(“请输入第一个数”);
int i1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“请输入第二个数”);
int i2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“两数相加结果为:{0}”,i1 + i2);

赋值:
赋值运算符=,让左边的变量值等于右边的计算结果(i=i+1)
布尔运算:
相等判断 ==
不等判段 !=
大小比较 <、>、<=、>=
组合运算&&(并且)、||(或者)

int i = -9;
string s1 = Console.ReadLine();
if (s1 == “5” || i < 0)
{
Console.WriteLine(“是”);
}
else
{
Console.WriteLine(“不是”);
}

#if语句
if (i>1)
{
}
第二种
if(i>1)
{
}
else
{
}
第三种
if(i>100)
{
}
else if(i<10)
{
}
else
{
}
练习:

提示用户输入密码,如果密码是“888888”则提示正确,否则错误。

        Console.WriteLine("请输入密码");
        string password = Console.ReadLine();//不需要用int password = Convert.ToInt32(Console.ReadLine())进行转换
        if (password == "888888")
        {
            Console.WriteLine("正确");
        }
        else
        {
            Console.WriteLine("错误");
        }
        Console.ReadKey(); 

提示用户输入密码,如果密码是“888888”则提示正确,否则要求再输入一次,如果密码是“888888”则提示正确,否则错误。

        Console.WriteLine("请输入密码");
        string password = Console.ReadLine();
        if (password == "888888")
        {
            Console.WriteLine("正确");
        }
        else
        {
            Console.WriteLine("请再输入一次");
            string password2 = Console.ReadLine();
            if (password2 == "888888")
            {
                Console.WriteLine("正确");
            }
            else
            {
                Console.WriteLine("错误");
            }
        }
        Console.ReadKey(); 

提示用户输入用户名,然后再提示输入密码,如果用户名的”admin“并且密码是“888888”则提示正确,否则错误,如果用户名不是“admin”,还提示用户用户名不存在。

        Console.WriteLine("请输入用户名");
        string name1 = Console.ReadLine();
        Console.WriteLine("请输入密码");
        string password = Console.ReadLine();
        string name = "admin";
        if (name1 == name && password == "888888")
        {
            Console.WriteLine("正确");
        }
        else
        {
            Console.WriteLine("错误");
            if (name1 != name)
            {
                Console.WriteLine("用户用户名不存在");
            }
        }
        Console.ReadKey();

#switch case语句
switch(i)
case 1:
//
break;
case 2:
//
break;

第二种形式:
switch(i)
case 1:
//
break;
case 2:
//
break;
default:
break;

第三种形式
switch(i)
case 1:
case 2:
//
break;

    例子:
        string s = Console.ReadLine();
        switch (s)
        {
            case "1"://case后必须是一个固定的值,不能是表达式,不能是bool运算
                Console.WriteLine("东");//
                break;//case后要有break,除非两个case合并
            case "2":
                Console.WriteLine("西");
                break;
            case "3":
                Console.WriteLine("南");
                break;
            case "4":
                Console.WriteLine("北");
                break;
            default://相当于else,如果上面的case都不匹配,运行default
                Console.WriteLine("输入错误");
                break;
        }
        Console.ReadKey();
        
         例子  
        string month = Console.ReadLine();
        switch (month)
        {
            case "1":
            case "3":
            case "5":
            case "7":
            case "8":
            case "10":
            case "12":
                Console.WriteLine("31");
                break;
            case "4":
            case "6":
            case "9":
            case "11":
                Console.WriteLine("30");
                break;
            case "2":
                Console.WriteLine("28");
                break;
            default:
                Console.WriteLine("输入错误");
                break;
        }
        Console.ReadKey();

类似于if…else…else if…else,但是是离散值的判断。
switch一般都可以用if重写,但是if不一定能用switch重写
不要忘了break。C#中的break不写是不行的,除了合并case的情况

#while循环、循环的中断
while(i<100)
{
//打印i
i++;
}
只要while后小括号中的表达式为true,就不断执行大括号中的代码

do
{
//打印i
i++;
}
while(i<100)
先做……如果满足则再来一次,直至while表达式为false。至少被执行一次。
练习:

       练习1:用while计算1到100之间的和(有更好的数学解法)
        int i = 1;
        int sum = 0;//存放数据的容器
        while (i <= 100)
        {
            Console.WriteLine(i);
            sum = sum + i;
            i++;
        }
        Console.WriteLine(sum);
        Console.ReadKey();
        
练习2:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出(return)

        while (true)
        {
            string s = Console.ReadLine();
            if (s == "q")
            {
                return;//退出程序
            }
            int i = Convert.ToInt32(s);
            Console.WriteLine(i * 2);
        }
        Console.ReadKey();
        
不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候显示刚才输入的数字中的最大值。
        int max = 0;//当前的最大值
        while (true)
        {
            Console.WriteLine("请输入一个正整数,结束请输入“end”");
            string s = Console.ReadLine();
            //不要在进行类型转换因为s可能是“end”无法ToInt32
            if (s == "end")
            {
                Console.WriteLine("最大数是:{0}",max);
                Console.ReadKey();
                return;
            }
            else
            {
                int i = Convert.ToInt32(s);
                if (i > max)
                {
                    max = i;//有了新的最大值
                } 
            }
        }
        Console.ReadKey();
设一个变量int max,初始值为0,用户每输入一次就把用户输入的和max比较一下,如果输入的比max大,则让max等于用户输入

循环的中断:
break:立即终止整个循环;
continue:立即终止当前循环步骤,进行下一次循环步骤;

练习1:用 while continue实现计算1到100之间的除了能被7整除之外所有整数的和
        int i = 0;
        int sum = 0;
        while (i < 100)
        {
            i++;
            if (i % 7 == 0)
            {
                continue;
            }
            sum=sum+i;  
        }
            Console.WriteLine(sum); 
            Console.ReadKey();
            
练习2:用while break实现要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。
        while (true)
        {
            Console.WriteLine("请输入用户名");
            string name = Console.ReadLine();
            Console.WriteLine("请输入密码");
            string password = Console.ReadLine();
            if(name !="admin"||password!="888888")
            {
                  Console.WriteLine("错误,请重新输入");
            }
            if (name =="admin"&&password=="888888")
            {
                Console.WriteLine("登陆成功");
                break;
            }

#for循环
for (code1;code2; code3)
code1:循环的初始化代码,只在循环开始之前运行一次;code2,bool类型的表达式,每次循环完成前都判断一下是否为true,只有为true才会进行本次循环;
code3,在每次循环之后执行一次。
for的三段都可以省略,但是不能丢了“;”
break、continue同样可以应用于for

   练习1:用 for实现计算1到100之间所有整数的和
        int i;
        int sum = 0;
        for (i = 1; i <= 100; i++)
        {
            sum = sum + i;
        }
        Console.WriteLine(sum);
        Console.ReadKey();
        
        练习2:用 for实现计算200到300之间所有整数的和
        int i;
        int sum = 0;
        for (i = 200; i <= 300; i++)
        {
            sum = sum + i;
        }
        Console.WriteLine(sum);
        Console.ReadKey();

#数组练习
枚举:enum 变量{,,}

static void Main(string[] args)
    {
        //int i = 5;
        Dir d1 = Dir.South;//限制可选值,用的时候一定要“类型.值”
    }
}
enum Dir { South, North, West, East }//和class平级

数组:

        int[] nums = { 2, 9, 0, 3, 99 };//长度为5
        int[] nums2 = new int[3];//只是声明数组,没有赋值
        int i3 = nums[3];
        Console.WriteLine(i3 );//取序号为3的元素,注意序号从0开始
        
        string[] names = { "张山", "李四", "王五" };
        string n0 = names[0];
        Console.WriteLine(n0);
        
        Console.WriteLine(names.Length);
        names[0] = "jason";
        Console.WriteLine(names[0]);

 Console.WriteLine(names[5]);//数组访问不能超过最大范围

遍历数组

        int[] nums = { 2, 9, 0, 3, 99 };
        for (int i = 0; i < nums.Length; i++)
        {
            Console.WriteLine(nums[i]);
        }

练习:从一个整数数组中取出最大的整数

        int[] nums = { 2, 9, 0, 3, 99 };
        int max = 0;
        for (int i = 0; i < nums.Length; i++)
            {
                if (nums[i] > max)
                {
                    max = nums[i];
                }  
            }
        Console.WriteLine(max);

练习:计算一个整数数组的所有元素的和

        int[] nums = { 2, 9, 0, 3, 99 };
        int sum = 0;
        for (int i = 0; i < nums.Length; i++)
        {
            sum = sum + nums [i];
        }
        Console.WriteLine(sum);

练习: 将一个字符串数组的元素的顺序进行反转。

        {"3","a","8","haha"} {"haha","8","a","3"}。
        第i个和第length-i-1个进行交换。
        string[] strs = {"3", "a", "8", "haha" };
        for (int i = 0; i < strs.Length; i++)
        {
            Console.WriteLine(strs[i]);
        }
        Console.WriteLine("=============");
        //整除:7/2是3,不是3.5,交换到中间就可以
        for (int i = 0; i < strs.Length/2; i++)
        {
            //i,len-1-i
            string temp = strs[i];
            strs[i] = strs[strs.Length-1-i];
            strs[strs.Length-1-i] = temp;
        }
        for (int i = 0; i < strs.Length; i++)
        {
            Console.WriteLine(strs[i]);
        }
            Console.ReadKey();

练习:连接两个int数组为新数组

        int[] nums = { 5, 3, 8 };
        int[] nums2 = { 5, 3, 99,333 };
        int[] nums3 = new int [nums.Length +nums.Length ];
        for (int i = 0; i < nums.Length; i++)
        {
            nums3[i]=nums[i];
        }
        for (int i = 0; i < nums2.Length; i++)
        {
            //有第一个数组长度偏移量
            nums3[nums.Length +i] = nums2[i];
        }
        for (int i = 0; i < nums.Length; i++)
        {
            Console.WriteLine (nums3[i]);
        }

练习:将一个字符串数组{“3”,“a”,“8”,“haha”}输出为|分割的字符串,“3|a|8|haha”

        string[] strs = { "3", "a", "8", "haha" };
        for (int i = 0; i < strs.Length; i++)
          {
              Console.Write(strs[i]+"|");
           }
        Console.ReadKey();            

Write就是在一行,WriteLine在多行。

练习:将一个整数数组的每一个元素进行如下的处理: 如果元素是正数则将这个位置的元素的值加1,如果元素是负数则将这个位置的元素的值减1

        int[] nums = { -2, -1, 0, 1, 2 };
        for (int i = 0; i < nums.Length; i++)
        {
            if (nums[i] < 0)
            {
                nums[i] = nums[i] + 1;
            }
            if (nums[i] >0)
            {
                nums[i] = nums[i] - 1;
            }
            Console.WriteLine(nums[i]);
        }
        Console.ReadKey();

练习:有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转换为字符串保存到字符串数组中

        int[] nums = { -2, -1, 0, 1, 2 };
        string[] strs = new string[nums.Length];
        for (int i = 0; i < nums.Length; i++)
        {
            strs[i] = nums[i].ToString();
            Console.WriteLine(strs[i]);
        }
            Console.ReadKey();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值