【学习笔记】【C语言】选择结构-if
1.if的第1种结构
if(条件)
{
语句1;
语句2;
......
}
如果if右边小括号()中的条件成立,也就是为“真”时,就会执行大括号{}中的语句;
如果条件为假,就不执行大括号{}中的语句。这里的if是关键字。
C语言规定所有非0值都为“真”
2.if的第2种结构
if(条件1)
{
语句1;
语句2;
......
}
else
{
}
如果if右边小括号()中的条件成立,也就是为“真”时,就会执行大括号{}中的语句,
如果条件为假,就执行else中{}里面的语句。
3.if的第3种结构
if(条件1)
{
语句1;
语句2;
......
}
else if(条件2)
{
}
else if(条件3)
{
}
else if(条件4)
{
}
else
{
}
如果if右边小括号()中的条件1成立,也就是为“真”时,就会执行大括号{}中的语句,
如果条件1不成立就判断条件2成不成立,成立就执行不成立就继续往下走判断条件3,以此类推
如果如果所有的条件为假,就执行else中{}里面的语句。
注意:这么多大括号中,只有1个大括号内的代码会被执行。
4.if的第4种结构
如果if后面大括号{}中只有一行代码时,可以省略大括号。
if (条件)
语句1;
为了保证代码的可读性,不建议省略大括号!!!
5.语句嵌套
if语句内部是可以嵌套其他if语句的,如下面的例子
int a = 7;
if ( a > 0 )
{
printf("a的值大于0\n");
if ( a<9 )
{
printf("a的值小于9");
}
}
6.注意
1》
千万不要在if的小括号后面添加分号
if ( a>8 );
2》
假设本来是想判断a是否为0,那么本应该写if (a == 0),若误写成了if (a = 0),那将是一件非常可怕的事情,因为编译器又不报错,这样的BUG就难找了。因此,像a==0这样的表达式,最好写成0==a,若误写成0=a,编译器会直接报错。
// 不推荐
if (a == 0) {
}
// 推荐
if (0 == a) {
}
3》
在C语言中,可以不保存关系运算的结果。
int a = 10;
a > 10;
a == 0;
这里又是一个陷阱,假设你的本意是想给a赋值为0,那么本应该写a = 0; ,若误写成a == 0; ,那将又是一个非常难找的BUG,因为编译器根本不会报错。
7.练习
/*
输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
*/ #include <stdio.h> int main()
{
// 1.提示输入
printf("请输入分数值:\n"); // 2.接收输入
int score;
scanf("%d", &score); // 3.判断等级 (性能最高)
if (score>= && score<=) { // [90, 100]
printf("A\n");
} else if (score>=) { // [80, 89]
printf("B\n");
} else if (score>=) { // [70, 79]
printf("C\n");
} else if (score>=) { // [60, 69]
printf("D\n");
} else { // (-∞, 59]
printf("E\n");
} /* 性能中等
if (score>=90 && score<=100) { // [90, 100]
printf("A\n");
} else if (score>=80 && score<=89) { // [80, 89]
printf("B\n");
} else if (score>=70 && score<=79) { // [70, 79]
printf("C\n");
} else if (score>=60 && score<=69) { // [60, 69]
printf("D\n");
} else { // (-∞, 59]
printf("E\n");
}*/ /* 性能最差
if (score>=90 && score<=100) { // [90, 100]
printf("A\n");
} if (score>=80 && score<=89) { // [80, 89]
printf("B\n");
} if (score>=70 && score<=79) { // [70, 79]
printf("C\n");
} if (score>=60 && score<=69) { // [60, 69]
printf("D\n");
} if (score<=59) { // (-∞, 59]
printf("E\n");
}*/
return ;
}
【学习笔记】【C语言】选择结构-if的更多相关文章
- Objective-C 学习笔记(一) 语言程序结构
Objective-C语言程序结构 “Hello World”简单示例 #import <Foundation/Foundation.h> //预处理命令,它告诉Objective-C语言 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- jQuery 学习笔记:jQuery 代码结构
jQuery 学习笔记:jQuery 代码结构 这是我学习 jQuery 过程中整理的笔记,这一部分主要包括 jQuery 的代码最外层的结构,写出来整理自己的学习成果,有错误欢迎指出. jQuery ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
- DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)
一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...
随机推荐
- .NET正则基础——.NET正则类及方法应用
1 概述 初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种方法解决,本文结合一些正则应用的典型应用场景,介绍一下Regex类的基本应用.这里重点进行.NET类的介绍,对于正则的 ...
- 怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM
怎样基于android4.4.2的源代码和android-4.3.1_r1的驱动编译I9250的ROM 作者:雨水 2014-05-04 联系方式:dennis.hu.cd at gmail.com ...
- Winform模拟post请求和get请求登录网站
引言 最近有朋友问如何用winform模拟post请求,然后登录网站,稍微想了一下,大致就是对http报文的相关信息的封装,然后请求网站登录地址的样子.发现自己的博客中对这部分只是也没总结,就借着这股 ...
- Linux/RedHat 编译安装GNU gcc 4.9.0 (g++)
这里说的是编译安装,yum/apt-get 等安装方法比較简单,不阐述! 1.下载源代码包:gcc.gnu.org 2.解压: tar -xjvf gcc-4.9.0.tar.bz2 3.下载编译所需 ...
- pthread_mutex_t
在Linux中使用线程 http://blog.csdn.net/jiajun2001/article/details/12624923 :LINUX就是这个范围作者 原创作品,允许转载,转载时 ...
- centos 服务器配置(三) 之定时任务
有些liunx系统已经自带定时任务crontab,但是有的新装系统还未安装定时任务,这个时候就需要我们手动对其进行安装. 安装crontab: yum install crontabs 说明: /sb ...
- SQL Sever 2008 数据库文件的备份和还原
数据库文件备份保存的方式我知道的有两种,第一种就是我们知道到的简单的分离,生成.mdf和.ldf文件,然后使用的时候直接进行附加数据库就可以了. 那么还有生成备份的文件.bak 的,这个操作要在步骤: ...
- 基于jQuery标题有打字效果的焦点图
给大家分享一款基于jQuery标题有打字效果的焦点图.之前为大家分享了好多jquery的焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗 ...
- LINUX ping 指定网卡
计算机上有多块网卡(例如笔记本电脑的无线网卡和以太网卡)连接至网络,使用ping命令想指定使用哪块网卡怎么办? ping -I eth0 10.10.10.1ping -I eth1 10.10.10 ...
- spring WebServiceTemplate 调用 axis1.4 发布的webservice
前言: 最近在开发中需要调用对方的 webservice服务,按照现有的技术,本应该是一件很简单的事情,只需要拿到wsdl文件,生成客户端代码即可,但是,对方的webservice服务是06年用ax ...