C#编程--第三天
语句
语句是指程序命令,都是按照顺序执行的。语句在程序中的执行顺序称之为“控制流”或“执行流”。根据程序对运行时所收到的输入的响应,在程序每次运行时程序流可能有所不同。
注意,语句间的标点符号必须是英文半角标点,语句的结束标点是分号”;“。
语句可以嵌套,可以是以分号结尾的单行代码,也可以是语句块中的单行语句。语句块括在括号{}中,并且可以包好嵌套块。
语句的类型包括声明语句、表达式语句、选择语句、循环语句、跳转语句、异常语句。
声明语句:引入新的变量或常量。变量声明可以选择为变量赋值。在常量声明中必须赋值
例如:int i = 0;//声明变量i并赋值,也可以不赋值。
表达式语句:用于计算值得表达式语句必须在变量中存储该值。
例如:sum =i+j;//变量i和j在此之前必须先赋值,而且sum也需要声明类型。 int x = a+b;//或者在声明的同时运算。
选择语句:if、else、switch、case
循环语句:do、for、foreach、while
跳转语句:break、continue、default、return
异常语句:trg-catch-finally
一、选择语句
if语句:
语法:
if(判断条件)
{要执行的代码;}
判断条件:一般为关系表达式或者bool类型的值。默认判断条件是==true,所以可以省略”==true“。如果需要flase则要写上==flase
执行过程:程序运行到if处,首先判断if所带的小括号中的判断条件是否成立,如果成立(也就是返回true),则执行if所带的大括号中的代码,如果判断条件不成立(返回false),则跳过if结构,继续向下执行。
特点:先判断,再执行。也有可能一行也不执行。##适用于一种情况的判断##
// 注意:if所带的小括号后面没有“;”,如果后面只有一个{},则花括号可以省略。
if else语句:
语法:
if(判断条件)
{执行代码;}
else{执行的代码;}
执行过程:程序执行到if处,先判断if所带的小括号中判断语句是否成立,如果成立则执行if所带大括号中的代码,执行完后,跳出if-else结构。
如果if所带的小括号中的判断条件不成立,则跳过if语句,执行else所带的大括号中的语句,执行完,跳出if-else结构。
特点:先判断,再执行,最少都要执行一条代码。##适用于两种情况的判断##
// 注意:else永远与它最近的if配对
if else-if语句:
作用:用于处理多条件的区间的判断。
语法:
if(判断条件)
{要执行的代码;}
else if(判断条件)
{要执行的代码;}
else if(判断条件)
{要执行的代码;}
else if(判断条件)
{要执行的代码;}
......
else{要执行的代码;}
执行过程:(待续。。。)程序首先判断第一个if所带的小括号中的判断条件,如果成立,则执行该if所带的大括号中的代码,执行完成好,立即跳出 if else-if 结构语句。如果第一个if所带的判断条件不成立,则继续向下进行判断,依次判断每一个if所带的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,如果每一个if所带的判断条件都不成立,就看当前这个 if else-if 结构中是否存在 else 。如果有 else 的话,则执行 else 中所带的代码如果没有 else ,则整个 if else-if 结构什么也不做。#else可省略#
if语句的嵌套
略···
例题:
//让用户输入一个年份,判断是否是闰年。
// a.能被400整除
// b.能被4整除,但不能被100整除。
// 思路:
// 1.从键盘接收一个年份,并转化整数 year。
// 2.判断是否满足上面的两个条件。
// 3.根据判断结果分别显示“平年”“闰年” console.write("判断是否闰年,请输入年份:");
int year = convert.toint32(convert .todouble(console.readline()));//convert.todouble嵌套在里面 当用户输入double类型时将其转换为int类型
if ((year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0))
{ console.writeline("是闰年"); }
else
{ console.writeline("是平年"); }
#region //判断ax*x+bx+c=0是不是一元二次方程
Console.Write("请输入a的值:");
//int a = Convert.ToInt32(Console.ReadLine());
double a = double.Parse(Console.ReadLine());
Console.Write("请输入b的值:");
//int b = Convert.ToInt32(Console.ReadLine());
double b = double.Parse(Console.ReadLine());
Console.Write("请输入c的值:");
//int c = Convert.ToInt32(Console.ReadLine());
double c = double.Parse(Console.ReadLine());
double d = b * b - 4 * a * c;
if (a == 0)
{
Console.WriteLine("方程不是一元二次方程。");
}
else
{
Console.WriteLine("是一元二次方程");
if (d >= 0)
{
double x1 = (-b + Math.Sqrt(d)) / (2 * a);//Math.Sqrt引用函数 开平方
double x2 = (-b - Math.Sqrt(d)) / (2 * a);
if (d > 0)
{
Console.WriteLine("方程有两个相等的实根");
Console.WriteLine("x1:" + x1.ToString() + "x2:" + x2.ToString());
}
else
{
Console.WriteLine("方程有两个不同的实根");
Console.WriteLine("x1=x2=" + x1.ToString());
}
}
else if (d < 0)
Console.WriteLine("此方程没有实根");
}
//简单方法
Console.Write("a:");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("b:");
int b = Convert.ToInt32(Console.ReadLine());
Console.Write("c:");
int c = Convert.ToInt32(Console.ReadLine());
int d = b * b - 4 * a * c;
if (a == 0)
{
Console.WriteLine("不是一元二次方程");
}
else
{
if (d > 0)
{
Console.WriteLine("有两个不相等的实根");
}
else if (d == 0)
{
Console.WriteLine("有两个相等的实根");
}
else
{
Console.WriteLine("无实根");
}
}
#endregion
#region//体重问题:男士体重:身高-100+(-)+3
Console.Write("请输入性别:");
string s = Console.ReadLine();
Console.Write("请输入体重(kg):");
double t = Convert.ToDouble(Console.ReadLine());
Console.Write("请输入身高(cm):");
double g = Convert.ToDouble(Console.ReadLine());
if (s == "男")
{
double n = t - g + 100;
if (n >= -3 && n <= 3)
{
Console.WriteLine("你的体重是标准体重");
}
else if (n > 3)
{
Console.WriteLine("你该减肥了");
}
else
{
Console.WriteLine("你需要增加营养");
}
}
else if (s == "女")
{
double n = t - g + 110;
if (n >= -3 && n <= 3)
{
Console.WriteLine("你的体重是标准体重");
}
else if (n > 3)
{
Console.WriteLine("你该减肥了");
}
else
{
Console.WriteLine("你需要增加营养");
}
}
else { Console.WriteLine("你输入的有误"); }
// #endregion
#region if判断年月日输入是否正确
Console.Write("请输入年份:");
int year = Convert.ToInt32(Console.ReadLine());
if (year > 0 && year <= 9999)
{
Console.Write("请输入月份:");
int month = Convert.ToInt32(Console.ReadLine());
if ((month > 0 && month < 13) == false)
{
Console.WriteLine("输入的月份有误");
}
else
{
Console.Write("月份输入正确,请输入日:");
int day = Convert.ToInt32(Console.ReadLine());
if ((day > 0 && day <= 31) == false)
{
Console.WriteLine("输入的日期有误");
}
else
{
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
Console.WriteLine("{0}年{1}月{2}", year, month, day);
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
Console.WriteLine("{0}年{1}月{2}", year, month, day);
}
else
{
if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
{
if (day < 1 || day > 29)
{
Console.WriteLine("输入天数不正确,闰年2月最多29");
}
else
{
Console.WriteLine("{0}闰年{1}月{2}日", year, month, day);
}
}
else
{
if (day < 1 || day > 28)
{
Console.WriteLine("输入天数错误,平年二月最多28天");
}
else
{
Console.WriteLine("{0}年{1}月{2}日", year, month, day);
}
}
}
}
}
}
else
{
Console.WriteLine("输入年份有误");
}
#endregion
#region//生成随机数,做猜拳
////产生随机数
// //1、创建能够产生随机数的对象
//Random r = new Random();
// // 2、让产生随机数的这个对象调用方法来产生随机数
//int rNumeber =r.Next(1,11);//产生的随机数的范围是1-10,左闭右开区间
//Console.WriteLine(rNumeber);
/*
try
{可能出现异常的代码;}
catch
{出现异常后要执行的代码;}
*/
第二遍
while (true)
{
Random sj = new Random();
int computer = sj.Next(1, 4);
Console.Write("进行猜拳游戏,请用户出拳(剪子-1,包袱-2,锤-3)\n请输入:");
int ren;
try
{
ren = Convert.ToInt32(Console.ReadLine());
if (ren == 1)//人出1的情况
{
if (computer == 1)
{
Console.WriteLine("电脑出剪子{0},平局。", computer);
}
else if (computer == 2)
{
Console.WriteLine("电脑出包袱{0},您赢。", computer);
}
else if (computer == 3)
{
Console.WriteLine("电脑出锤{0},您输。", computer);
}
}
else if (ren == 2)//人出2的情况
{
if (computer == 1)
{
Console.WriteLine("电脑出剪子{0},您输。", computer);
}
else if (computer == 2)
{
Console.WriteLine("电脑出包袱{0},平局。", computer);
}
else if (computer == 3)
{
Console.WriteLine("电脑出锤{0},您赢。", computer);
}
}
else if (ren == 3)//人出3的情况
{
if (computer == 1)
{
Console.WriteLine("电脑出剪子{0},您赢。", computer);
}
else if (computer == 2)
{
Console.WriteLine("电脑出包袱{0},平输。", computer);
}
else if (computer == 3)
{
Console.WriteLine("电脑出锤{0},平局。" + computer);
}
}
else
{ Console.WriteLine("输入错误"); }
}
catch
{
Console.WriteLine("输入有误");
}
}
while (true)
{
//Console.WriteLine("要开始猜拳游戏吗?(y/n)");
Random rand = new Random();
int n = rand.Next(3);
Console.WriteLine("进行猜拳游戏,请用户出拳(剪子-0,包袱-1,锤-2)");
int m = Convert.ToInt32(Console.ReadLine());
if (m == 0)
{
if (n == 0)
{
Console.WriteLine("平局");
}
else if (n == 1)
{
Console.WriteLine("您赢了");
}
else
{
Console.WriteLine("电脑赢");
}
}
else if (m == 1)
{
if (n == 1)
{
Console.WriteLine("平局");
}
else if (n == 2)
{
Console.WriteLine("您赢了");
}
else
{
Console.WriteLine("电脑赢");
}
}
else if (m == 2)
{
if (n == 2)
{
Console.WriteLine("平局");
}
else if (n == 1)
{
Console.WriteLine("您赢了");
}
else
{
Console.WriteLine("电脑赢");
}
}
else
{
Console.WriteLine("你输入的内容有误");
}
Console.ReadKey();
}
#endregion
#region //try catch异常捕获应用
bool b = true;//让代码满足某些条件去执行的话,使用bool类型
int n = 0;//声明一个变量赋一个初值0
Console.WriteLine("请输入一个数字");
try//把可能出异常的代码踹下
{
n = Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine("你输入的内容不能转换为数字");
b = false;
}
if (b == true)
{
Console.WriteLine(n * 2);//b==true 这句代码才会输出
}
#endregion
C#编程--第三天的更多相关文章
- Javascript模块化编程(三):require.js的用法
Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...
- 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task
5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...
- 【转】apue《UNIX环境高级编程第三版》第一章答案详解
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...
- WCF编程系列(三)地址与绑定
WCF编程系列(三)地址与绑定 地址 地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...
- 转:JavaScript函数式编程(三)
转:JavaScript函数式编程(三) 作者: Stark伟 这是完结篇了. 在第二篇文章里,我们介绍了 Maybe.Either.IO 等几种常见的 Functor,或许很多看完第二篇文章的人都会 ...
- 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数
本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O ...
- 【unix网络编程第三版】阅读笔记(三):基本套接字编程
unp第三章主要介绍了基本套接字编程函数.主要有:socket(),bind(),connect(),accept(),listen()等. 本博文也直接进入正题,对这几个函数进行剖析和讲解. 1. ...
- 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...
- 斐波那契数列-java编程:三种方法实现斐波那契数列
题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...
- [Java并发编程(三)] Java volatile 关键字介绍
[Java并发编程(三)] Java volatile 关键字介绍 摘要 Java volatile 关键字是用来标记 Java 变量,并表示变量 "存储于主内存中" .更准确的说 ...
随机推荐
- 02.LNMP架构-MySQL源码包编译部署详细步骤
操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Cmake+Boost+MySQL 操作步骤: 一.安装依赖组件 [root@localhost ~]# yum -y ...
- 一、RabbitMQ安装与测试连接
一.下载NuGet支持的RabbitMQ.Client客户端库与安装RabbitMQ服务. 1.安装客户端库操作服务. 2.安装服务. 步骤一.下载Erlang. 步骤二.下载RabbitMQ服务 采 ...
- zabbix入门之添加监控项
zabbix入门之添加监控项 添加一个不带参数的监控项(system.cpu.switches) 进入"配置"-->"主机"选择某主机的"监控项 ...
- 数据库_MHA群集搭建
MHA概念介绍,群集搭建与测试 一, MHA介绍 1.概念:MHA master high availability,由日本DeNA公司开发,解决mysql故障切换可以做到0-30秒,而且在故障切换过 ...
- sql for loop
--step1 disable constraint begin for i in (select uc.constraint_name, uc.table_name from user_constr ...
- linux shell 指令
一.文件比较运算符 1. e filename 如果 filename存在,则为真 如: [ -e /var/log/syslog ] 2. -d filename 如果 filename为目录,则为 ...
- Python中使用"subplot"在一张画布上显示多张图
subplot(arg1, arg2, arg3) arg1: 在垂直方向同时画几张图 arg2: 在水平方向同时画几张图 arg3: 当前命令修改的是第几张图 t = np.arange(0,5,0 ...
- leetcode-167周赛-1293-网格中的最短路径
题目描述: 自己的提交:广度优先 O(mn*min(k,m+n)) class Solution: def shortestPath(self, grid, k: int) -> int: vi ...
- win 10配置安装iis
站长喜欢本地配置iss调试网站后发布到网上,但是前提是系统得配置好iis.随着Win10的出现,越来越多的人装上了Win10, 但是小编最近发现很多旧版本windows系统用户在升级到windows ...
- bugku | 你从哪里来
题目链接 之前一直以为要用x-forwarded-for ,谁道用的是referer,Orz.在此特地记录,x-forwarded-for 和 referer的区别 X-Forwarded-For(X ...