多语言展示
当前在线:1802今日阅读:162今日分享:23

c语言入门:[10]选择结构if语句介绍之3

这节我把那个会员卡的例题再改一改:如果会员卡号是6开头,输出贵宾你好,你可以享受九折优惠,否则输出普通会员享受九五折优惠,以我们现在掌握的if语句我们可以这样写代码main(){ char v1,v2,v3,v4,v5; printf('请输入5位会员卡号:'); scanf('%c%c%c%c%c',&v1,&v2,&v3,&v4,&v5); if(v1=='6') { printf('贵宾你好,你可以享受九折优惠\n'); } if(v1!='6') { printf('会员你好,你可以享受九五折优惠\n'); }}上面的例子是一个典型的两分支结构,就是只有两种情况,而且肯定有一种情况是成立的,也就是说程序运行的时候要么执行第一个if里的代码要么执行第二个if语句里的代码。按上面的写法是可以的,但我们按照程序执行的步骤解析一下你琢磨琢磨。假如v1里面的值是6程序执行到第一个if语句时先判断(v1=='6'),结果条件为真,执行if语句的大括号里的代码程序执行到第二个if语句时还要判断(v1!='6'),结果条件为假,不执行if语句的大括号里的代码其实我们完全没有必要判断两次,因为这两个条件表示两个完全相反的情况,第一个if成立的话第二个if就不可能成立,第一个if不成立则第二个if一定成立。对于这种两分支(就是两种情况,两种选择的意思)的选择结构我们在代码里可以用if else 来实现,else 可以理解成否则的意思,它代表的是if小括号里的条件的相反情况,例如if的条件是 a>0 那else 就表示a<=0的情况。上面那道例题的if else 写法如下:main(){ char v1,v2,v3,v4,v5; printf('请输入5位会员卡号:'); scanf('%c%c%c%c%c',&v1,&v2,&v3,&v4,&v5); if(v1=='6') { printf('贵宾你好,你可以享受九折优惠\n'); } else { printf('会员你好,你可以享受九五折优惠\n'); }}对比之前的写法我们看这样写简洁明了,条件只判断一次。第一种写法用了两个if语句,这样写用了一个if语句。有的人可能会产生疑问了,为什么第二种写法是一个if语句呢?其实else就是if语句的一个组成部分,只不过有的时候我们不需要它可以把它省略掉,请看下面的注释。if(v1=='6') { printf('贵宾你好,你可以享受九折优惠\n'); };//你如果在这里加分号表示if语句到这里就结束了,那运行程序的时候就会报错,就会提示else前面有错误,因为那个else不属于if了,被孤立了出来,而else是不能单独存在的所以会报错。 else { printf('会员你好,你可以享受九五折优惠\n'); };//你如果在这里加分号是完全没有问题的因为if语句本来到这里就结束了,运行也不会报错。现在我写一个程序main(){ int a; printf('请输入一个整数:'); scanf('%d',&a); if(a<0) { printf('你输入的是一个负数\n'); } if(a==0) { printf('你输入的是零\n'); } else { printf('你输入的是正数\n'); }}运行程序我从键盘输入-1,它的执行结果是什么?你可以先思考下再看答案。我们来分析下为什么会是两个输出结果。首先你要确定程序里是两条if语句,第一条if语句跟第二条if语句没有任何关系,代码从上到下执行,执行完第一个if语句肯定要执行第二个if语句。因为a的值是-1所以第一个if语句的条件成立,输出你输入的是一个负数。第二个if语句是一个两分支结构,if语句的条件成立执行第一个大括号里的代码,不成立执行else大括号里的代码,显然条件不成立所以执行了else里面的输出,输出你输入的是正数。我们分析上面的例子应该是一个三分支的结构,也就是说有正数、负数、零三种选择,有的时候我们还有比三种选择更多的情况比如会员卡的种类有金卡、银卡、普通卡、钻石卡等等,那下节我们就来学习多分支选择结构。
推荐信息