底层关系
数据类型
类型
开发工程中:f1可以查看文档 命名空间不允许以数字开头,所以我们创建好之后,会默认在前面加_,系统加的 int a; 整数 2的10,取值范围:正负20多亿 double a; 小数 精度 17位到18位 char a; 字符型,只能存储一个字符,并且这个字符必须用单引号包住 string 类型:字符串,可以由0个或者多个字符链接起来。 decimal: 存储金钱,精度高。28位到29位。因为钱比较敏感 decimal money; money = 1000; money = 1000.25m;// 如果是double,那么必须后面加符号m/M
第一种:先声明,后赋值 int a; a = 100;
第二种:声明的同时赋值 int a = 200;
第三种:一次性声明多个相同类型的变量可用都好分割
int a, b;
int age = 10, height = 2, results = 99
Console.WriteLine(b);
Console.ReadKey();
两条规定: 1、必须以“字母” _或者@符号开头 2、后面可以跟任意字母,数字,下划线 可以用中文,但是不要模仿
三条注意: 你起的变量名不要与C#系统中的关键字重复 大小写是敏感的 同一个变量名不允许重复定义 举例: string name = “李四" string name = “张三" 这里运行就会报错 但是如果想让name变成 “张三” 只需要name = “张三” 这属于重新赋值
在C#中,具有两重意思,当加号两边是数字类型的时候,那么就是数学的意义。 如果加号两边的数据,有一个是字符类型,那么就是连接的意义! Console.WriteLine("我的名字"+age+",性别”+sex+",工资”+wage+"元.");
占位符{} 占位符可以重复使用
Console.WriteLine("我的名字i{0},性别{1},工资{2},name, age, wage);
Console.WriteLine()
有多个参数时,输出都是第一个参数中的内容,
从第二个参数开始,都是用来替换第一个参数中的占位符的值,
所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。
Console.Write(“我的名字“+name+",性别"+sex+",年龄"+age+",工资"+wage);
Console.WriteLine("我的名字i{0}{0}{0},性别{1}{1},工资{2},name, age, wage);
没用到的变量不会出错
Console.Write( "{0}我的名字"+name,”年龄“+sex);
Console.Write("{0},我的名字" + name, "xingbie"+sex);
int a = 18;
int b = 10;
int temp;
temp = a;
a = b;
b = temp;
Console.WriteLine("a = {0}, b = {1}",a, b);
Console.ReadKey();
string name = "zhangsan";
int age = 18;
string input; // 定义一个字符串类型的变量,来存储用户的输入
string phoneNumber = "18034795123";
input = Console.ReadLine(); // 存储用户的输入
Console.WriteLine("我的名字{0},性别{1},我的年龄{2},我想吃{3}",phoneNumber,name,age,input);
Console.ReadKey();
或者直接赋值:
string input = Console.ReadLine(); // 存储用户的输入
转义字符是一个字符,由一个+一个字母来组成具有特殊意义的一个字符
\n (另起一行)
\b(退格,不管前面有没有字符,都会退一格,覆盖执勤的)
\t(tab键,由多个空格组成一个字符,具有行与行支架你的对齐功能)
\\ \(两个杠表示一个)"
Console.WriteLine("抗战英雄,痛恨"日本人",因为他的亲人被杀害"); Console.ReadKey(); char ch = ‘\”’; // 转义其实就是一个char类型。
Console.WriteLine(@"抗战英雄,痛恨"日本人",因为他的亲人被杀害"); 如果前面有@符号,那么我们可以使用两个 ” “ 字符代表一个。 Console.WriteLine(@"我是中国人,痛恨""侵略我们的日本"",虽然他们很会伪装");
Console.WriteLine(@"dadsdfdgfdghf asddsda asdadadadadasdd addadaa");
+、-、*、/、% 这五种都是二元运算符,要求:参与的两个操作数类型必须相同,并且结果也与操作数相同。 在算术表达式中,改变计算优先级,使用()来改变。
1、参与运算的两个数据类型必须相兼容。 2、一边的数据类型比另一个数据类型大,那么就会将小的类型提升为大的类型,精度不会丢失! 凡是有可能丢失数据精度的转换,都不会自动完成!
>
<
>=
<=
!=
==
&&
且
||
或
!
非
if结构
if-else结构
if-else if结构
switch-case结构
for循环
while循环
do-while循环
for each循环
强制类型转换:只需要在前面int b = (int)3.14, 关于字符串转换成其他类型:Convert.ToInt32(待转换的字符串); string convert = “90”; int i = Conver.ToInt32(convert); // 这就把string类型转成int 类型了
其他类型转换成字符串 Convert.ToString,每种类型还有.ToString()方法 一切类型都可以转成字符串。 int a = 10; int b = 20; Console.WriteLine(a.ToString() + b); Console.ReadKey();
try
{
有可能出现的错误
}catch
{
如果try中的代码出问题,那么就执行这个里面的
}
try
{
Console.WriteLine("请输入你的姓名");
string name = Console.ReadLine();
Console.WriteLine("请输入你的语文成绩");
int Y = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入你的数学成绩");
int S = Convert.ToInt32(Console.ReadLine());
int Z = Y + S;
Console.WriteLine("{0}您输入的总成绩为" + Z, name);
}
catch
{
Console.WriteLine("输入错误,重新输入成绩");
}
Console.ReadKey();
Console.WriteLine("请输入一个数字");
int days =Convert.ToInt32( Console.ReadLine());
int month = days / 30;
int weak = days % 30 / 7;
int day = days % 30 % 7;
Console.WriteLine("请输入秒数");
int second = Convert.ToInt32( Console.ReadLine());
int day = second / (60 * 60 * 24);
second = second % (60 * 60 * 24); // 剩余秒数
int hours = second /(60 * 60);
second = second % (60 * 60);
int minutes = second / 60;
int seconds = second % 60;
Console.WriteLine("{0}秒是{1}天{2}小时{3}分{4}秒",second,day,hours,minutes,seconds);
什么是常量? 在程序运行过程中不可修改的量。 语法:
[访问修饰符] const 数据类型 常量名
public const int number = 60;
注意点: