复杂数据类型

默认情况:0,1,2,3
赋值情况:0,3,4,5;//修改初始值,后面都会改变
定义在class外面,作用域更大
定义在class里面(类种类),只能在类里使用
枚举作用:方便把不同角色的属性归类,避免混淆
只有枚举项是用逗号分隔
非排他性—标志性枚举
enum(关键字) 枚举名(自定义的类型名称)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace m1w2d2_complex_datatype
{
enum QQSta
{
Qme,
Online,
Office,
Leave,
Busy,
}
enum GameSta
{
MenuSta = ,
PlaySta = ,
ExitSta = ,
}
enum Occupation
{
战士 = ,
道士 = ,
法师 = ,
}
class Program
{
static void Main(string[] args)
{
#region 枚举
//基本数据类型
//1、定义变量,2、使用变量
//复杂数据类型
//1,定义类型,2、定义这个类型的变量、2、使用变量
//枚举:一般情况我们用枚举来表示一组状态的集合
//定义类型 一般情况下我们都放在类外面定义
// enum 自定义枚举名
//{
//成员(枚举项),
//成员(枚举项),
//}
//每个枚举项都可以赋整数值
//如果没有赋值,他的值是前一枚举项的值+1
//第一个枚举项如果不赋值,默认值0
//赋值原因:给枚举项建立数学联系(属性相克)
//定义这个类型的变量时,枚举的值,只能是所规定的枚举项
//自定义枚举名 变量名 = 自定义枚举名.某一枚举项
//定义QQ状态的枚举,Qme,Online,Office,Leave,Busy
//提示用户选择一个在线状态,我们接受,并将用户的输入转换成枚举类型。
//整型 int a;a是一个int型的变量,int是整型
//enum QQSta myQQSta;myQQSta是一个QQSta型的变量,QQSta是enum
QQSta myQQSta = QQSta.Leave;
while (true)
{
Console.WriteLine("请输入用户状态:1、Qme,2、Online,3、Office,4、Leave,5、Busy");
bool isRightInput = false;
string input = Console.ReadLine();
switch (input)
{
case "": myQQSta = QQSta.Qme; isRightInput = true; break;
case "": myQQSta = QQSta.Online; isRightInput = true; break;
case "": myQQSta = QQSta.Office; isRightInput = true; break;
case "": myQQSta = QQSta.Leave; isRightInput = true; break;
case "": myQQSta = QQSta.Busy; isRightInput = true; break;
default:
Console.WriteLine("操作错误,请重新输入");
Console.WriteLine();
break;
}
if (isRightInput) break;
}
Console.WriteLine("操作正确");
Console.WriteLine("操作正确,你现在的状态是{0}", myQQSta);
#endregion
#region 枚举的练习
//定义一个游戏的状态,MenuSta,PlaySta,ExitSta,
//1、定义一个枚举类型
//最好在类的外面
//成员就是我们需要的状态
//成员之间用逗号分割
//2、定义一个变量
GameSta myGameSta = GameSta.MenuSta;
//状态都是排他的状态
//标志枚举:可以做非排他状态
//3、使用这个变量
while (true)
{
Console.WriteLine("请输入游戏状态:1、MenuSta,2、PlaySta,3、ExitSta");
bool isRightInput = false;
string input = Console.ReadLine();
switch (input)
{
case "": myGameSta = GameSta.MenuSta; isRightInput = true; break;
case "": myGameSta = GameSta.PlaySta; isRightInput = true; break;
case "": myGameSta = GameSta.ExitSta; isRightInput = true; break;
default:
Console.WriteLine("操作错误,请重新输入");
Console.WriteLine();
break;
}
if (isRightInput) break;
}
Console.WriteLine("操作正确,你现在的状态是{0}", myGameSta);
#endregion
#region 枚举的转换
//枚举与整型之间的转换
//通过强制转换符可以将枚举和整型进行转换
//如果将一个整型 转成 枚举 而没有对应的枚举项
GameSta myGameSta = GameSta.MenuSta;
int a = (int)myGameSta;
Console.WriteLine(a);
myGameSta = (GameSta);
Console.WriteLine(myGameSta);
Console.WriteLine("请输入游戏状态:1、menusta,2、playsta,3、exitsta");
GameSta myGameSta = (GameSta)int.Parse(Console.ReadLine());
string strGameSta = myGameSta.ToString();
Console.WriteLine("操作正确,你现在的状态是{0}", strGameSta);
#endregion
#region 枚举与字符串之间的转换
//枚举转字符串
//对应的变量,调用toString()方法,可以将枚举转字符串
//将字符串转成枚举
//我们用Parse()可以将字符串转成枚举
//由于自定义类型中没有Parse(),所以我们需要调用Enum.Parse();
//Enum.Parse()不会知道你是需要转换到哪个自定义的枚举类
//我们要将自定义的枚举类型告诉他,作为他的第一个参数,使用到typeof();
//typeof()在C#中用于取类型
//Enum.Parse()在参数齐备的情况会将字符串转成object
//我们用强制转换符可以把这个object转换成对应的枚举
//如果你给定的字符串在对应的枚举项中没有,会转换错误
Occupation gameSta = (Occupation)Enum.Parse(typeof(Occupation), "道士");
Console.WriteLine(gameSta);
#endregion
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace m1w2d2_exercise
{
class Program
{
static void Main(string[] args)
{
//在控制台上输出九九乘法表
//1 * 1 = 1 ?
//2 * 1 = 2 ? 2 * 2 = 4 ?
//3 * 1 = 3 ? 3 * 2 = 6 ? 3 * 3 = 9 ?
//4 * 1 = 4 ? 4 * 2 = 8 ? 4 * 3 = 12 ? 4 * 4 = 16 ?
//5 * 1 = 5 ? 5 * 2 = 10 ? 5 * 3 = 15 ? 5 * 4 = 20 ? 5 * 5 = 25 ?
//6 * 1 = 6 ? 6 * 2 = 12 ? 6 * 3 = 18 ? 6 * 4 = 24 ? 6 * 5 = 30 ? 6 * 6 = 36 ?
//7 * 1 = 7 ? 7 * 2 = 14 ? 7 * 3 = 21 ? 7 * 4 = 28 ? 7 * 5 = 35 ? 7 * 6 = 42 ? 7 * 7 = 49 ?
//8 * 1 = 8 ? 8 * 2 = 16 ? 8 * 3 = 24 ? 8 * 4 = 32 ? 8 * 5 = 40 ? 8 * 6 = 48 ? 8 * 7 = 56 ? 8 * 8 = 64 ?
//9 * 1 = 9 ? 9 * 2 = 18 ? 9 * 3 = 27 ? 9 * 4 = 36 ? 9 * 5 = 45 ? 9 * 6 = 54 ? 9 * 7 = 63 ? 9 * 8 = 72 ? 9 * 9 = 81
for (int i = ; i < ; i++)
{
for (int j = ; j <= i; j++)
{
Console.Write("{0} * {1} = {2} \t ", i, j, (i * j));//符号\t是制表符
}
Console.WriteLine();
}
//猜数字游戏:要求用户1输入一个数字(0<x<=100)
//游戏规则:
//a.用户只能猜10次,十次内每次根据用户输入的数据提示用户当前猜的值是太
//大了还是太小了,如果在前5次用户猜中则提示用户:“你太厉害了,第_次就猜中了。”
//b.如果用户猜中了,但是超过5次则提示用户:“不错,不错,猜对了!”
//c.如果用户在最后一次猜中了则提示用户:“海底捞针啊,你真是太幸运了!”
//d.如果用户超过十次都没有猜中则提示用户:“对不起,你已经猜了10次了,
//不能再猜了。”
Random roll = new Random();
int numRandom;
numRandom = roll.Next(, );
Console.Write(numRandom);
int times = ;
bool isRight = false;
Console.WriteLine("请用户1输入一个数字(0<x<=100)");
int numInput = int.Parse(Console.ReadLine());
for (int i = ; i <= ; i++)
{
times++;
if (numInput == numRandom)
{
isRight = true; break;
}
else if (numInput > numRandom)
{
Console.Write("当前猜的值大了");
Console.WriteLine();
numInput = int.Parse(Console.ReadLine());
}
else if (numInput < numRandom)
{
Console.Write("当前猜的值小了");
Console.WriteLine();
numInput = int.Parse(Console.ReadLine());
}
}
if (isRight)
{
if (times <= )
{
Console.Write("你太厉害了,第{0}次就猜中了。", times);
}
else if ( < times && times < )
{
Console.Write("不错,不错,猜对了!");
}
else if (times == )
{
Console.Write("海底捞针啊,你真是太幸运了!");
}
}
else
{
Console.Write("对不起,你已经猜了10次了,不能再猜了");
}
Random roll = new Random();
int numRandom;
numRandom = roll.Next(, );
Console.Write(numRandom);
int times = ;
bool isRight = false;
Console.WriteLine("请用户1输入一个数字(0<x<=100)");
int numInput = int.Parse(Console.ReadLine());
}
}
}

C#学习笔记(六):循环嵌套、复杂数据类型和枚举的更多相关文章

  1. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  2. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  3. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  4. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  5. Typescript 学习笔记六:接口

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. 《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)

    <python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' == ...

  7. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  8. Linux学习笔记(六) 进程管理

    1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...

  9. # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...

  10. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

随机推荐

  1. python center() 函数

    center Python center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串.默认填充字符为空格. 语法 center()方法语法: str.center(widt ...

  2. unity3d之 C# WaitFOrSeconds()

    学习unity3d不久.在使用WaitFOrSeconds()时,遇到了不少麻烦,故记录,以警示后人. 首先介绍C#和javascript 在使用它有非常大的差别. javascript能够直接使用 ...

  3. XMind思维导图主题操作要点

  4. categoriy 重写函数会怎样?

    From comp.lang.objective-C FAQ listing: "What if multiple categories implement the same method? ...

  5. RMAN备份与恢复实践(转)

    1   RMAN备份与恢复实践 1.1  备份 1.1.1 对数据库进行全备 使用backup database命令执行备份 RMAN> BACKUP DATABASE; 执行上述命令后将对目标 ...

  6. Python os.path.dirname(__file__) 与 Python os.path.abspath(__file__) 与 os.system() 函数

    Python  os.path.dirname(__file__) 与 Python os.path.abspath(__file__) 的区别 os.path.abspath(__file__)返回 ...

  7. iOS 网易彩票-3常见设置

    Navigation导航设置 为了统一管理导航控制器,需要自定义导航控制器MJNavigationController,继承于UINavigationController.分别设置5个Navigati ...

  8. 剑指offer2

    请实现一个函数,将一个字符串中的字符串空格替换成“%20”.例如:“We Are Happy”转化后为“We%20Are%20Happy” 思路:把字符串转化成字符数组,判断这个字符是不是空格,如果是 ...

  9. c#中WMI 中的日期和时间转为本地时间

    取得的值:CreationDate:20170122084915 .713600+480 转:   var objQuery = new ObjectQuery("select * from ...

  10. 【codenet】代码相似度计算框架调研 -- 把内容与形式分开

    首发于我的gitpages博客 https://helenawang.github.io/2018/10/10/代码相似度计算框架调研 代码相似度计算框架调研 研究现状 代码相似度计算是一个已有40年 ...