if(一个返回bool值的条件表达式)

{

程序块

}

else{}

它的执行过程我们可以通过一个程序来了解

  static void Main(string[] args)
{
if (score >= ) // 条件1
{
Console.WriteLine("A");
}
else if (80 =< score && score < 90) //条件2 这里的score<90根本不执行,没有理解if else if的本质 {
Console.WriteLine("B");

上面的写法实际上没有理解if else if的本质(下划线为错误的判断条件)

if else if的本质是:如果if条件不满足则执行Else中的条件判断。基于这个理解,上面的if语句条件1不满足的话,实际上就意味着score《90

所以条件2中的子条件score<90是多次一举!或者else if (score<90 && score <=80) ,这里的Score<90  在条件1为假后,肯定为真!

提示用户输入用户名,然后再提示用户输入密码,如果用户名是"admin"和密码是"888888",那么提示正确

否则,如果用户名不是Admin,则提示用户名不存在,如果用户名是Admin则提示密码不正确.

 static void Main(string[] args)
{
Console.WriteLine("请输入用户名");
string username = Console.ReadLine(); Console.WriteLine("请输入密码");
string password = Console.ReadLine(); if (username == "admin" &&
password == "")
{
Console.WriteLine("密码正确");
}
else
{
if (username != "admin")
{
Console.WriteLine("用户名不正确");
}
else if (password != "")
{
Console.WriteLine("密码不正确");
}
} Console.ReadKey(); }

上面的写法,是Else里面嵌套了If Else。下面采用另外一种写法,是If Else If Else

 static void Main(string[] args)
{
Console.WriteLine("请输入你的用户名");
string username = Console.ReadLine(); Console.WriteLine("请输入你的密码");
string password = Console.ReadLine(); // 下面的If Else If Else 可以成对理解,比如else if else 还是可以作为一个来理解
if (username == "admin" && password == "")
{
Console.WriteLine("用户名和密码正确");
}
else if (username != "admin")
{
Console.WriteLine("用户名不正确");
}
else // 注意理解上面If Else If
{
Console.WriteLine("密码不正确");
} Console.ReadKey();
}
}

If Else 语句是否使用{}

通常if表达式后只有一个语句的话,不使用{}.同样的下面的形式却有不同的结果.

 if (true)
string test ="test"; // 这个会发生编译错误! if (true)
{
string test = "test"; // 这样子的写法正确
}

Else与靠近If结合

如果if 表达式后面只有一个语句,通常会不写{},但是这个习惯也可能导致程序出现错误;其实在实际情况下,通常以为自己会If Else,但是实际上If Else的组合起来可以构造非常复杂的业务逻辑.而且好的If Else组合一看就明白业务含义,但是差的If Else就容易误导或者非常难理解这段If Else的含义.最主要要理解if else的逻辑顺序。

if(){}else 语句的正确写法以及它的嵌套使用的更多相关文章

  1. 【记录】AutoMapper Project To OrderBy Skip Take 正确写法

    AutoMapper:Queryable Extensions 示例代码: using (var context = new orderEntities()) { return context.Ord ...

  2. 使用runloop阻塞线程的正确写法

    使用runloop阻塞线程的正确写法 runloop可以阻塞线程,等待其他线程执行后再执行. 比如: @implementation ViewController{    BOOL end;}…– ( ...

  3. oracle 数据库中,应用程序里的连接探測语句的正确使用

    oracle 数据库中,应用程序里的连接探測语句的正确使用 本文为原创文章.转载请注明出处:http://blog.csdn.net/msdnchina/article/details/3851376 ...

  4. obj.style.z-index的正确写法

    obj.style.z-index的正确写法 今天发现obj.style.z-index在js里面报错,后来才知道在js里应该把含"-"的字符写成驼峰式,例如obj.style.z ...

  5. C++中虚继承派生类构造函数的正确写法

    最近工作中某个软件功能出现了退化,追查下来发现是一个类的成员变量没有被正确的初始化.这个问题与C++存在虚继承的情况下派生类构造函数的写法有关.在此说明一下错误发生的原因,希望对更多的人有帮助. 我们 ...

  6. php中mysql语句的基本写法

    php中mysql语句的基本写法 php作为一门后台语言必须要与mysql数据库打交道,做到将内容存储到数据库以及数据库数据读写的操作,那么下面就来说下最近学习的一些东西: 在具体将之前先说一下编码的 ...

  7. ***PHP $_FILES函数详解 + PHP文件上传 move_uploaded_file() 参数的正确写法

    PHP $_FILES函数详解 在PHP中上传一个文件建一个表单要比ASP中灵活得多.具体的看代码. 如:  复制代码代码如下: <form enctype="multipart/fo ...

  8. jquery中获取radio选中值的正确写法

    错误写法: //只在IE下有作用,其他浏览器均获取的为第一个单选框的值 $('input[type=radio]').val(); 正确写法为: //兼容所有浏览器写法 $('input[type=r ...

  9. 判断下列语句是否正确,如果有错误,请指出错误所在?interface A{

    判断下列语句是否正确,如果有错误,请指出错误所在? interface A{ int add(final A a); } class B implements A{ long add(final A ...

随机推荐

  1. YII 1.0 扩展第三方类

    扩展缩略图类在blog\protected\extensions 中建立 Image/CThumb.php 1. 自己瞎弄的,一点都不优雅 include_once Yii::app()->Ba ...

  2. GWAS

    GWAS的数据形式:SNP数据,即各个SNP位点的aa,Aa,AA基因型与疾病状态(0正常,1患病)的样例-对照数据. 在遗传流行病学上,全基因组关联研究(Genome Wide Associatio ...

  3. 决策树ID3算法

    决策树 (Decision Tree)是在已知各种情况发生概率的基础上,通过构成 决策树 来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法 ...

  4. jQuery 对象与Dom 对象互转

    jQuery 对象与Dom 对象互转: $obj --[i],get(i)-->obj --$(obj)-->$obj; obj--$($(obj))-->$obj,多包装了也是$o ...

  5. HTTP的GET方法模拟

    进行GET方法的测试 #telnet[ ]10.1.1.11[ ]80 GET[ ]/[ ]HTTP/1.0 [两个回车] HEAD[]/[]HTTP/1.0[回车回车] http://www.cnb ...

  6. JSP userBean setProperty getProperty指令使用

    JSP userBean setProperty getProperty指令使用 javaBean的属性取决于get/set方法,而不是真实的属性名称. jsp文件: <%@ page lang ...

  7. Java中泛型数组的使用

    package com.srie.testjava; import java.util.ArrayList; import java.util.List; public class TestClass ...

  8. JavaScript 轻松创建级联函数

    级联函数是什么? 在一行代码上,调用一个接一个的方法.这种技术在 JQuery 或者其他 JavaScript 库中是非常常见的. 代码如下: $('#myDiv').fadeOut().html(' ...

  9. 无法删除MySql数据库,报错1010 error dropping

    环境:MySQL.Navicat 8 操作:Drop database testDB 报错:1010 error dropping database 解决方法:          ps -ef | g ...

  10. 使用OpenFiler来模拟存储配置RAC中ASM共享盘及多路径(multipath)的测试

    第一章 本篇总览 之前发布了一篇<Oracle_lhr_RAC 12cR1安装>,但是其中的存储并没有使用多路径,而是使用了VMware自身提供的存储.所以,年前最后一件事就是把多路径学习 ...