语句

语句是指程序命令,都是按照顺序执行的。语句在程序中的执行顺序称之为“控制流”或“执行流”。根据程序对运行时所收到的输入的响应,在程序每次运行时程序流可能有所不同。
    注意,语句间的标点符号必须是英文半角标点,语句的结束标点是分号”;“。
    语句可以嵌套,可以是以分号结尾的单行代码,也可以是语句块中的单行语句。语句块括在括号{}中,并且可以包好嵌套块。
    语句的类型包括声明语句、表达式语句、选择语句、循环语句、跳转语句、异常语句。
   
    声明语句:引入新的变量或常量。变量声明可以选择为变量赋值。在常量声明中必须赋值
        例如: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#编程--第三天的更多相关文章

  1. Javascript模块化编程(三):require.js的用法

    Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...

  2. 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task

    5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...

  3. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  4. WCF编程系列(三)地址与绑定

    WCF编程系列(三)地址与绑定   地址     地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...

  5. 转:JavaScript函数式编程(三)

    转:JavaScript函数式编程(三) 作者: Stark伟 这是完结篇了. 在第二篇文章里,我们介绍了 Maybe.Either.IO 等几种常见的 Functor,或许很多看完第二篇文章的人都会 ...

  6. 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数

    本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O ...

  7. 【unix网络编程第三版】阅读笔记(三):基本套接字编程

    unp第三章主要介绍了基本套接字编程函数.主要有:socket(),bind(),connect(),accept(),listen()等. 本博文也直接进入正题,对这几个函数进行剖析和讲解. 1. ...

  8. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

  9. 斐波那契数列-java编程:三种方法实现斐波那契数列

    题目要求:编写程序在控制台输出斐波那契数列前20项,每输出5个数换行 斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 这个数列 ...

  10. [Java并发编程(三)] Java volatile 关键字介绍

    [Java并发编程(三)] Java volatile 关键字介绍 摘要 Java volatile 关键字是用来标记 Java 变量,并表示变量 "存储于主内存中" .更准确的说 ...

随机推荐

  1. 二、TortoiseSVN 合并、打分支、合并分支、切换分支

    一.合并 点击Edit conflict来编辑冲突: 在合并后的枝干对应栏中编辑后,Save保存后关闭. 二.TortoiseSVN 打分支.合并分支.切换分支 1.SVN打分支 方式一:先检出,再打 ...

  2. VisualVM监控远程主机

    参考博客 https://blog.csdn.net/u010004317/article/details/82948040 https://blog.csdn.net/lienfeng6/artic ...

  3. ltp-ddt realtime_cpu_load涉及的cyclictest 交叉编译

    Cyclictest 是 rt-tests 下的一个测试工具,也是rt-tests 下使用最广泛的测试工具,一般主要用来测试使用内核的延迟,从而判断内核的实时性.   1.下载源码 git clone ...

  4. activemq---点对点/发布订阅模式简单代码示例

    activemq 消息模式流程: ConnnectionFactory --> Connection --> Session --> Message ---ConnectionFac ...

  5. Center os 用户环境变量

    vi ~/.bash_profile进入用户环境变量设置 export JAVA_HOME=/usr/java/jdk1.7.0_76export JAVA_BIN=$JAVA_HOME/binexp ...

  6. python基础:3.高级运算符

    1.异或运算 十进制的异或运算,先转成二进制进行异或,按位进行比较,对应位置相同则为0,对应位置不同则为1,,再从异或结果转成十进制. python中: 1 ^ 1 = 0 1 ^ 2 = 3 1 ^ ...

  7. k8s和docker区别

    简要介绍: docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖到一个容器中,发布到流行的liunx系统上,或者实现虚拟化. k8s是一个开源的容器集群管理系统,可以实现容器集群的自 ...

  8. service-web

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...

  9. delphi 创建桌面快捷方式

    unit UShorCut; interface uses Windows, Classes, SysUtils,Dialogs, ShlObj, ComObj, ActiveX, Registry; ...

  10. BZOJ 2806: [Ctsc2012]Cheat(单调队列优化dp+后缀自动机)

    传送门 解题思路 肯定先要建出来广义后缀自动机.刚开始以为是个二分+贪心,写了一下结果\(20\)分.说一下正解,首先显然\(L_0\)具有单调性,是可以二分的.考虑二分后怎样判合法,对于分割序列很容 ...