C#学习笔记 02.01
(学习视频来自bilibili的传智播客赵老师基础教学视频)
这个就直接上了
变量
稍微解释一下啥是变量,有啥变量
用来存储数据的一个东西,可以理解为一个箱子,变量名字就是箱子的标签,变量类型就是箱子的类型,就好像不能用纸壳箱装水一样。
声明方式是 类型名称 变量名
int number;
number = 1;
先声明一个整数型变量number,再把这个变量赋值为1,当然啦,声明的同时就赋值也可以。
两个很基本的数据类型: 整数int ; 小数double
一般情况下这两个就足够了,甚至如果不考虑索引这种东西的话只用double都可以……
不过作为一个有追求的文艺青年,当然还是多知道几个比较好,比如另外两个很重要的,也很基本的:
bool(只有两个值 true和false)
string 字符串类型,可以存一长串的文本,双引号引起来
再补一点我这种菜鸡级别用不到的
char 一个单独的字符,单引号引起来
(下图来自VS2019的在线帮助)
decimal多用来存储钱,因为其精度更高
声明的时候有点特殊,decimal dec = 5000.00m;
这个特殊就特殊在这个m上,因为如果不加这个会被默认为double类型。
变量的特点
- 想用的话得先赋值,
- 咱可以多次对同一个变量赋值,但是变量的值始终是最后赋的那个
- 声明的时候可以声明一堆,比如 int a,b,c,d; 不过这个时候就不能一边声明一边赋值了。
- 变量名中可以有下划线,别的符号就别出现了
- 变量名不能和关键字冲突
类型转换
- 我们可以在牺牲一些东西的情况下进行强制转换,比如(int)3.64就会变成 int 型的 3 ,这种转换是对小数部分的舍弃,而非四舍五入。这种方法只能转换类型兼容的,比如都是数字类型。
- 对于不兼容的,就需要用 Convert 转换,转换时候想转成什么就 Convert.To啥,
想用这个需要面上过得去,不然会抛出异常,异常这玩意需要用 try 去搞一搞。
运算符
运算符 | 含义 |
---|---|
= | 右边的值赋给左边(右边可以是个式子) |
+ | 数字的时候就是个相加,字符的时候是连接 |
% | 取余数,10 % 3 = 1 |
还有个叫占位符的东西,占位符从0开始,挖了几个坑就埋几个。。。
static void Main(string[] args)
{
Console.WriteLine("一{0},二{1},三{2}",1,2,3);
Console.ReadKey();
}
输出这么个东西,不过这玩意告别了控制台之后我还没碰到过用的地方,可能是我都用的本办法解决了……
占位符还有个比较好玩的东西,如果我们用 {0:0.00}来作为占位符,那么我们对应该位置的这个小数会变成两位小数(这里是四舍五入,而不是强制转换的砍掉)
转义符
转义符指的是一个 \加上一个字符,组成了一个具有特殊意义的字符……
转义符 | 含义 |
---|---|
\" | 将 " 变成一个字符,而不是声明字符串的符号 |
\r\n | 将字符串中换个行,这个字符串打印到记事本中,也是换行的 |
\n | 这个只是在控制台中打印换行,如果写在记事本里面就不换行了 |
\t | 相当于输入时候按下一次tab键,是能自动对齐那种空格 |
\b | 相当于按了一下退格键,但是写在字符串首尾都不起作用,也就是我们不能用他删掉字符串最后一个字 |
再来一个特殊符号: @
作用是取消 \ 在字符串中的转义作用,变回一个单纯的
还可以让后面的这个字符串按照打代码的格式输出。
补充的注意事项
- 项目名字起错了,想要改一下不要去动命名空间的名字,而是直接删除项目重新新建一个,否则会在后面的解决方案中项目互相引用出现问题。
- 项目名字别起成和方法重复的,前面写点控制台的小玩意很难出现这个问题,但是一旦进入应用阶段,引用了不同的dll文件之后,没有好的起名习惯就很容易出现这种问题了。所以像我,一般就喜欢起Star_啥玩意01_详细点的名字这样的,虽然未必好,但是至少不容易重名。
- 新学的时候还是多写写注释,尽管再简单,写出来也可以练习打字速度,可以真正理解代码。
- 给变量起名的时候也需要带上含义,不要只是随便给个x1,x2啥的,这样回头自己都会看不懂。。。如果你准备防反编译的话当我没说。。。
- 骆驼命名法命名变量(这是个约定俗成,不这么整也不会报错,就是合作的时候容易挨打):变量名的首字母小写,名字内的其他单词首字母大写。
- 控制台这个东西,不管输出的是什么,其实输出的都是字符串。
而输入也是一样,输入进来的都是字符串,所以都要用字符串接收。
最后来个练习题
题目:输入一个秒数,算出来这些秒是多少天,多少小时,多少分钟,多少秒。
上代码(可运行):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
namespace _01_My_First_Preject
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入你要算的秒数");
start: //开始进行读入输入数据
string str = Console.ReadLine();
int x;
try
{
x = Convert.ToInt32(str);
}
catch (Exception)
{
Console.WriteLine("请输入纯数字(整数)");
goto start;//发生异常时候跳转到读数据之前
}
int fen = (int)x / 60;//一共多少整分
int miao_yu = x % 60;//剩了多少秒
int shi = (int)fen / 60;//一共多少整小时
int fen_yu = fen % 60;//剩了多少分
int tian = (int)shi / 24;//一共多少整天
int shi_yu = shi % 24;//剩了多少小时
Console.WriteLine("{0}秒是{1}天{2}小时{3}分钟零{4}秒", x, tian, shi_yu, fen_yu, miao_yu);
Console.ReadKey();
}
}
}