C#学习笔记(六):循环嵌套、复杂数据类型和枚举
复杂数据类型


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#学习笔记(六):循环嵌套、复杂数据类型和枚举的更多相关文章
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- python3.4学习笔记(六) 常用快捷键使用技巧,持续更新
python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记六:接口
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- 《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)
<python基础教程(第二版)>学习笔记 语句/循环/条件(第5章) print 'AB', 123 ==> AB 123 # 插入了一个空格print 'AB', 'CD' == ...
- 【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- Linux学习笔记(六) 进程管理
1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...
- # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
随机推荐
- Unity 补充安装
当需要下载 安装Unity之时没勾选的一些组件时, 1.去Unity官网点开Unity旧版本 2.找到你的Unity版本,然后只要下载Unity安装程序 3.点开安装程序,去掉已安装组件的勾选,勾选你 ...
- for练习相关
for嵌套: 大圈套小圈思想:有一种重复的情况而这种情况每一次对应另外情况多次. ------------------------------------------------------- 例如: ...
- application实例
application详解及实例 application对象用来在多个程序或者是多个用户之间共享数据,用户使用的所有application对象都是一样的,这与session对象不同.服务器一旦启动,就 ...
- (转)Springboot 中filter 注入对象
问题:我建立一个全局拦截器,当然,这是测试的时候建立的,我把它命名为LogFilter,它继承了Filter,web应用启动的顺序是:listener->filter->servlet,而 ...
- poj1753Flip Game(dfs)
Flip Game 思想很不成熟, #include <stdio.h>#include <string.h>#include <stdlib.h>int map ...
- JavaScrip总体
js: 简单对象: 数字 | 字符串 | 这三个像对象,有方法,但不可变 布尔值 | null undefined 对象:无类型,k-v对集合:函数.数组.REG.... JavaScript是一种l ...
- XenServer:使用XenCenter开设VPS(多图完整版)
打铁要趁热,咱们接着来玩XenServer.昨天赵容用机房提供的KVM给服务器装了XenServer,今天我们来玩更有意思的:开小鸡.装好XenServer之后,访问我们的服务器IP,就可以看到Xen ...
- 机器学习理论基础学习3.2--- Linear classification 线性分类之线性判别分析(LDA)
在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),是一种处理文档的主题 ...
- Summary: sorting Algorithms
Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item a ...
- 有意思的JSON.parse()、JSON.stringify()
前言 现在JSON格式在web开发中非常重要,特别是在使用ajax开发项目的过程中,经常需要将后端响应的JSON格式的字符串返回到前端,前端解析成JS对象值(JSON 对象),再对页面进行渲染. 在数 ...