Lesson1 | 输入和输出
//第一种注释 两杠注释
//第二种注释 星号注释
//第三种注释 三杠注释
using System;
/// <summary>
/// 命名空间 —— 工具包
/// </summary>
namespace Lesson1_第一个应用程序
{
//命名空间 代码块
//知识点:面向对象的编程
/// <summary>
/// 类 —— 工具
/// </summary>
class Program
{
//类代码块 知识点:面向对象的编程
/// <summary>
/// 函数 —— 工具可以做的事
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
//函数代码块 我们目前学习基础知识时
//所有的代码 都写在这里
//控制台 输出并且自动换行
Console.WriteLine("请输入信息,按回车结束:");
//控制台 输入内容并且按回车结束
Console.ReadLine();
//控制台 输出但是不自动换行
Console.Write("你已经输入,");
Console.Write("欢迎!" + '\n'); // \n是转义符号,意思是换行,且用''
//控制台 输出并且自动换行
Console.WriteLine("按任意键继续...");
//控制台 读取按下的任意键
Console.ReadKey();
//控制台 输出并且自动换行
Console.WriteLine("是你按下的按键,已确认继续!");
}
}
}
Lesson2 | 变量
//引用命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//命名空间
namespace Lesson2_变量
{
//类
class Program
{
//函数
static void Main(string[] args)
{
//函数语句块 目前学习均在这
Console.WriteLine("第二课 变量");
#region 知识点一 折叠代码
//主要作用 使得我们在编程时 逻辑更加清晰
//它是由 #region 和 #endregion 构成的
//它的具体作用 将中间的代码折叠起来 避免代码太凌乱
//本质是 IDE提供给我们的 预处理指令
//只有在编辑时才有用 在发布代码时 在执行程序时 会被自动删除
#endregion
#region 知识点二 如何申明变量
//变量 可以变化的容器
//变量 就是可以用来存储不同类型数值的容器
//不同类型的变量 可以存储对应类型的数据
/*
* 变量声明的固定写法
* 变量类型 变量名 = 初始值 ;
*/
// int 整型变量 = 1;
// 变量类型有14种 是需要背的
// 变量名有命名规范 是要按规范命名的
// 初始值要和变量类型统一 否则会报错
/*
* 变量类型
* 1. 一定要死记硬背 各种变量类型的关键字
* 2. 一定要记住 各种不同变量类型 所能存储的范围
* 3. 一定要记住 各种不同变量类型 所能存储的类型
*/
//1.有符号的整形变量 | 是能存储 一定范围 正负数包括0的变量类型
// sbyte | 范围 -128~127
sbyte sb = 1;
// int | 范围 -21亿多~21亿多
int i = 1;
// short | 范围 -32768~32767
short s = 1;
// long | 范围 -9百万兆~9百万兆
long l = 1;
Console.WriteLine("这是sbyte变量sb中的值:" + sb );
Console.WriteLine("这是int变量i中的值:" + i);
Console.WriteLine("这是short变量s中的值:" + s);
Console.WriteLine("这是long变量l中的值:" + l);
//2.无符号的整型变量 | 是能存储 一定范围 非负整数的变量类型
// byte | 范围 0~225
byte b = 0;
// uint | 范围 0~42亿多
uint ui = 2;
// ushort | 范围 0~65535
ushort us = 65535;
// ulong | 范围 0~18百万兆
ulong ul = 0;
Console.WriteLine("这是byte变量b中的值:" + b);
Console.WriteLine("这是uint变量ui中的值:" + ui);
Console.WriteLine("这是ushort变量us中的值:" + us);
Console.WriteLine("这是ulong变量ul中的值:" + ul);
//3.浮点数(小数)
//float 存储7/8位有效数字 根据编辑器不同 有效数字也可能不一样
//当超出有效数字以后 四舍五入
//之所以要在后面加f 是因为c#中 申明小数默认是double的类型 加f或者F 是告诉系统 它是float类型
float f = 0.1234567890f;
Console.WriteLine("这是float变量f中的值:" + f);
//double 存储15~17位有效数字 根据编辑器不同 有效数字也可能不一样
//当超出有效数字以后 四舍五入
double d = 0.12345678901234567890;
Console.WriteLine("这是double变量d中的值:" + d);
//decimal 存储27~28位的有效数字 (不建议使用)
//之所以要在后面加m 是因为c#中 申明小数默认是double的类型 加m或者M 是告诉系统 它是decimal类型
decimal de = 0.123456789012345678901234567890m;
Console.WriteLine("这是decimal变量de中的值:" + de);
//4.特殊类型
/* bool
* 布尔类型 或 真假类型 | 只能存储 ture false 表示真假的数据类型
*/
bool bo1 = true;
bool bo2 = false;
Console.WriteLine("bo1: " + bo1 + " | " + "bo2: "+bo2);
/*
* char
* 查尔类型 或 字符类型 | 是用来存储 单个字符 的变量类型
*/
char c = '茶';
Console.WriteLine("char: " + c);
/*
* string
* 字符串类型 | 是用来存储 多个字符且没有上限 的变量类型
*/
string str = "哈哈哈哈,2333333333,咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕咕";
Console.WriteLine("string: " + str);
#endregion
#region 知识点三 为什么会有这么多的变量类型
//注意:变量的使用不能无中生有 必须声明以后才能使用 而且不要多次重复声明变量
i = i + 1;
/* 不同的变量 存储的范围和类型不同 本质是占用的内存空间不同
* 选择不同的数据(变量)类型装载不同的数据
*/
//例如 以下的场景
//姓名 | 字符串
string UserRealName = "小德";
//年龄 | 数字 且 不为负数 不大于255
byte UserAge = 17;
//身高 | 数字 且 可以为小数 单位为cm
float UserHeight = 176.5f;
//体重 | 数字 且 可以为小数 单位为kg
float UserWeight = 68.5f;
//性别 | 两个值(男或者女) ture——女 false——男
bool UserSex = false;
//对于初学 数字用int 小数用float 字符串用string 真假用bool
#endregion
#region 知识点四 多个相同类型变量的同时申明
// 同时声明的方法即使用 , 把它们分开
// 变量类型 变量名 = 初始值 , 变量名 = 初始值 ...;
int Val1 = 1, Val2 = 2;
#endregion
#region 知识点五 变量初始化相关
//变量申明时 可以不设置初始值 但是不建议这样写 因为这样写不安全
int TestEmpty;
#endregion
}
}
}
Lesson3 | 变量的本质
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lesson3_变量的本质
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("第三课 变量的本质");
#region 变量类型回顾
// 类型1 | 有符号的整数
// sbyte [-128~127]
// int [-21亿多~21亿多]
// short [-3万多~3万多]
// long [-9百万兆多~9百万兆多]
// 类型2 | 无符号的整数
// byte [0~255]
// uint [0~42亿多]
// ushort [0~6万多]
// ulong [0~18百万兆多]
// 类型3 | 浮点数(以有效数字计)
// float [7~8位有效数字]
// double [15~17位有效数字]
// decimal [27~28位有效数字]
// 类型4 | 特殊类
// bool [布尔数 true 或 false]
// char [查尔数 只能存储 一个字符]
// string [字符串 可以存储 一串字符]
#endregion
#region 知识点1 | 变量的存储空间(在内存中的存储空间)
// 1byte = 8bit
// 1MB = 1024byte
// 1GB = 1024MB
// 1TB = 1024GB
// 通过sizeof方法 可以获取变量类型所占的内存空间 (单位:字节)
// 有符号
Console.WriteLine("========== 这是 有符号 的变量的内存空间 ==========");
int SizeSbyte = sizeof(sbyte);
Console.WriteLine("sbyte 所占的字节数为:" + SizeSbyte);
int SizeInt = sizeof(int);
Console.WriteLine("int 所占的字节数为:" + SizeInt);
int SizeShort = sizeof(short);
Console.WriteLine("short 所占的字节数为:" + SizeShort);
int SizeLong = sizeof(long);
Console.WriteLine("long 所占的字节数为:" + SizeLong);
//无符号
Console.WriteLine("========== 这是 无符号 的变量的内存空间 ==========");
int SizeByte = sizeof(byte);
Console.WriteLine("byte 所占的字节数为:" + SizeByte);
int SizeUint = sizeof(uint);
Console.WriteLine("uint 所占的字节数为:" + SizeUint);
int SizeUshort = sizeof(ushort);
Console.WriteLine("ushort 所占的字节数为:" + SizeUshort);
int SizeUlong = sizeof(ulong);
Console.WriteLine("ulong 所占的字节数为:" + SizeUlong);
//浮点数
Console.WriteLine("========== 这是 浮点数 的变量的内存空间 ==========");
int SizeFloat = sizeof(float);
Console.WriteLine("float 所占的字节数为:" + SizeFloat);
int SizeDouble = sizeof(double);
Console.WriteLine("double 所占的字节数为:" + SizeDouble);
int SizeDecimal = sizeof(decimal);
Console.WriteLine("decimal 所占的字节数为:" + SizeDecimal);
//特殊型
Console.WriteLine("========== 这是 特殊型 的变量的内存空间 ==========");
int SizeBool = sizeof(bool);
Console.WriteLine("bool 所占的字节数为:" + SizeBool);
int SizeChar = sizeof(char);
Console.WriteLine("char 所占的字节数为:" + SizeChar);
// sizeof是无法得到 string类型 的内存空间的 因为 字符串的大小是可变的!
// 你只能得一个 可以确定大小 的变量的内存空间
#endregion
#region 知识点2 | 变量的本质
#endregion
}
}
}
Lesson4 | 变量的命名规范
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lesson4_变量的命名规范
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("第四课 变量的命名规则");
// c#对大小写敏感 区分命名的大小写 区分函数的大小写
#region 知识点1 | 必须要遵守的规则
Console.WriteLine("========== 知识点1 ==========");
Console.WriteLine("1. 不能重名;");
Console.WriteLine("2. 不能使用数字作为开头;");
Console.WriteLine("3. 不能使用程序关键字;");
Console.WriteLine("4. 不能使用特殊符号(下划线_除外)。");
// 建议的命名规则:
// √ 变量名要有含义 | 用英文(或拼音)表示变量的含义
// 非常不建议的命名规则:
// × 变量名使用中文 | 不同的环境或者编辑器要求不同 可能导致报错
#endregion
#region 知识点2 | 常用的命名规则
// 驼峰命名法 | 变量的命名
// ★首字母小写,之后的单词首字母大写
string myName = "myName";
string yourBMI = "yourBMI";
string yourUserName = "yourUserName";
Console.WriteLine("例如:" + myName + "," + yourBMI + "," + yourUserName + "...");
// 帕斯卡命名法 | 函数、类的命名
// ★所有单词首字母都大写
#endregion
}
}
}
Lesson5 | 常量
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lesson5_常量
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("第五课 常量");
#region 知识点1 | 常量的申明
// 关键字 const
// 固定写法 | const 变量类型 变量名 = 初始值;
// 常量是不可修改的 一般是游戏中不易修改的东西
// 比如 BOSS的攻击数值 某个奖励的数值 固定的数学数值 等等
#endregion
#region 知识点2 | 常量的特点
// 1.必须要初始化
// 2.不可以被修改
const int attackBoos_Skill1 = 15;
const string textBoos_Skill1 = "旋风斩";
int yourLifePoint = 10;
Console.WriteLine();
Console.WriteLine("■■■■■■■■■■■■■■■■■■■■");
Console.WriteLine("■ 请切换输入法为英文模式以防止误操作 ■");
Console.WriteLine("■■■■■■■■■■■■■■■■■■■■");
Console.WriteLine();
Console.WriteLine("===== 按下 y 吃掉生命果实,按下 其他按钮 不吃生命果实 =====");
if ("Y" == Console.ReadKey().Key.ToString())
{
Console.WriteLine('\n' + "★ 恭喜!你吃掉了 生命果实 | 生命 +65");
yourLifePoint = yourLifePoint + 100;
}
else
{
Console.WriteLine('\n' + "☆ 啊,你没有吃掉 生命果实 | 生命 +0");
}
Console.WriteLine("■ 你现在的生命值:" + yourLifePoint);
Console.WriteLine("===== 发现前方有 Lv1 的BOOS | 按下 任意键 开始战斗!! =====");
if (null != Console.ReadKey())
{
Console.WriteLine('\n' + "▲ 不好!你受到攻击 " + textBoos_Skill1 + " | 生命 -" + attackBoos_Skill1);
yourLifePoint = yourLifePoint - attackBoos_Skill1;
}
if (yourLifePoint >= 0)
{
Console.WriteLine("■ 你现在的生命值:" + yourLifePoint);
}
else
{
yourLifePoint = 0;
Console.WriteLine("■ 你现在的生命值:" + yourLifePoint);
Console.WriteLine("☆ 啊,你失败了。");
Environment.Exit(0);
}
Console.WriteLine("===== 轮到你反击了! | 可以使用 次元斩 按下 y 即可释放 =====");
if ("Y" == Console.ReadKey().Key.ToString())
{
Console.WriteLine('\n' + "★ 恭喜!你胜利了!");
}
#endregion
}
}
}
评论区
还没有人评论