if(){}else 语句的正确写法以及它的嵌套使用

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

{

程序块

}

else{}

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

 1  static void Main(string[] args)
 2         {
 3             if (score >= 90) // 条件1
 4             {
 5                 Console.WriteLine("A");
 6             }
 7             else if (80 =< score && score < 90) //条件2 这里的score<90根本不执行,没有理解if else if的本质
 8
 9             {
10                 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则提示密码不正确.

 1 static void Main(string[] args)
 2         {
 3             Console.WriteLine("请输入用户名");
 4             string username = Console.ReadLine();
 5
 6             Console.WriteLine("请输入密码");
 7             string password = Console.ReadLine();
 8
 9             if (username == "admin" &&
10                 password == "888888")
11             {
12                 Console.WriteLine("密码正确");
13             }
14             else
15             {
16                 if (username != "admin")
17                 {
18                     Console.WriteLine("用户名不正确");
19                 }
20                 else if (password != "888888")
21                 {
22                     Console.WriteLine("密码不正确");
23                 }
24             }
25
26             Console.ReadKey();
27
28         }

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

 1 static void Main(string[] args)
 2         {
 3             Console.WriteLine("请输入你的用户名");
 4             string username = Console.ReadLine();
 5
 6             Console.WriteLine("请输入你的密码");
 7             string password = Console.ReadLine();
 8
 9
10             // 下面的If Else If Else 可以成对理解,比如else if else 还是可以作为一个来理解
11             if (username == "admin" && password == "888888")
12             {
13                 Console.WriteLine("用户名和密码正确");
14             }
15             else if (username != "admin")
16             {
17                 Console.WriteLine("用户名不正确");
18             }
19             else // 注意理解上面If Else If
20             {
21                 Console.WriteLine("密码不正确");
22             }
23
24             Console.ReadKey();
25         }
26     }

If Else 语句是否使用{}

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

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

Else与靠近If结合

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

时间: 2024-12-27 23:19:38

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

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

本文为原创文章,转载请注明出处:http://blog.csdn.net/msdnchina/article/details/38513765 在很多程序里边,连接探测(或者连接检测)语句,都是用的select sysdate from dual; 这是典型的"只要功能实现,不管性能如何"的写法.其实,连接探测语句,应该用select 1 from dual; 也许有人说,程序员们很辛苦,能实现功能就不错了.但是,我想说的是:换用select 1 from dual;的写法,不需要把

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

最近工作中某个软件功能出现了退化,追查下来发现是一个类的成员变量没有被正确的初始化.这个问题与C++存在虚继承的情况下派生类构造函数的写法有关.在此说明一下错误发生的原因,希望对更多的人有帮助. 我们代码中存在虚继承的类的继承结构与下图类似,并不是教科书中经典的菱形结构.从 Intermediate1 和 Intermediate3 到Base2 的继承都是虚继承.Base1 和 Base2 都包含一些成员变量,并提供了相应的构造函数接受指定的初始化值.Base2 还有一个缺省构造函数,把其成员

C++面试中string类的一种正确写法

C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源.具体来说: 能像 int 类型那样定义变量,并且支持赋值.复制. 能用作函数的参数类型及返回类型. 能用作标准库容器的元素类型,即 vector/list/deque 的 value_type.(用作 std::map 的 key_type 是更进一步的要求,本文从略). 换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误. vo

php中mysql语句的基本写法

php中mysql语句的基本写法 php作为一门后台语言必须要与mysql数据库打交道,做到将内容存储到数据库以及数据库数据读写的操作,那么下面就来说下最近学习的一些东西: 在具体将之前先说一下编码的问题,很多情况会发现php内容显示在浏览器里会有编码问题,同时前台存储到数据库表中的中文字信息也会出现乱码问题,那么这里有几个地方要注意: 1.header("Content-Type: text/html;charset=utf-8");//强行指定页面的编码,以避免乱码 在php在前面

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

判断下列语句是否正确,如果有错误,请指出错误所在? interface A{ int add(final A a); } class B implements A{ long add(final A a){ return this.hashCode() + a.hashCode(); } } 解答:返回值不是long类型 原文地址:https://www.cnblogs.com/borter/p/9552784.html

Mybatis,模糊查询语句,以及传参数的正确写法

不多说直接上代码! 接口: public interface CommodityMapper { int deleteByPrimaryKey(Integer productId); int insert(Commodity record); Commodity selectByPrimaryKey(Integer productId); List<Commodity> selectAll(); List<Commodity> getType(int id); int update

Handler的正确写法

Handler我们常常用于通知主线程做相对应的操作,但是如果使用不但的话就会造成内存泄露,所以记录写正确的Handler写法. Handler handler = new Handler() { public void handleMessage(Message msg) { //do something }; }; handler.sendEmptyMessageDelayed(0, 100 * 1000); 像上面的代码片段,就会存在内存泄露的风险,因为handler占着Acitvity的引

日期对象的正确写法

在开发过程中,经常会遇到这样的问题,我们需要选择一个时间区间,前面的年月日时分秒一定要小于后边的年月日时分秒时间,我们选择的这个区间在交互上才是合理的.正确的.这就涉及到时间的比较,一般我们都是选择获取时间,转化为毫秒进行比较.那么问题来了,年月日时分秒转化为毫秒数,正确的书写格式是什么样的: 1 year-month-day hours:minutes:seconds demo: 1 $beinging="2016-10-19"; 2 $sltDTBeginHour='10'; 3

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

本文为原创文章.转载请注明出处:http://blog.csdn.net/msdnchina/article/details/38513765 在非常多程序里边.连接探測(或者连接检測)语句,都是用的select sysdate from dual; 这是典型的"仅仅要功能实现,无论性能怎样"的写法.事实上,连接探測语句.应该用select 1 from dual; 或许有人说,程序猿们非常辛苦,能实现功能就不错了.可是.我想说的是:换用select 1 from dual;的写法.不