C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
选择结构语句
在实际生活中我们经常需要作出一些判断,比如开车来到一个十字路口,这时需要对红绿灯进行判断,如果前面是红灯,就停车等候,如果是绿灯,就通行。同样,在C语言中也经常需要对一些条件做出判断,从而决定执行哪一段代码,这时就需要使用选择语句。选择结构语句分为 if条件语句 和 switch条件语句,今天我们就重点讲解一下 if条件语句 。
if条件语句
if 条件语句分为三种语法格式,每一种格式都有其自身的特点,下面分别进行讲解。
格式一:if语句
if语句是指如果满足某种条件,就进行相应的处理。例如,小明妈妈跟小明说“如果你考试得了100分,星期天就带你去游乐场玩”。这句话可以通过下面的一段伪代码来描述。
如果小明考试得了100分
妈妈星期天带小明去游乐场
在上面的伪代码中,“ 如果 ”相当于C语言中的关键字 if,“小明考试得了100分”是判断条件,需要用 ( ) 括起来,“妈妈星期天带小明去游乐场”是执行语句,需要放在 { } 中。修改后的伪代码如下:
if (小明考试得了100分)
{
妈妈星期天带小明去游乐场
}
上面的例子就描述了if语句的用法,在C语言中,if语句的具体语法格式如下:
if (条件语句)
{
代码块
}
上述语法格式中,判断条件是一个布尔值,当判断条件为true时, { } 中的执行语句才会被执行。if语句的执行流程如下图所示:
if语句流程图
接下来我们通过一个案例来学习if语句的具体用法:
#include
int main()
{
int x = 5; //声明变量x
if (x < 10) //如果x的值小于10则执行if大括号中的代码
{
x++;
}
printf(''x=%d '' , x);
return 0;
}
运行结果如图3-5所示:
上例中,定义了一个变量x,其初始值为5。在if语句的判断条件中判断x的值是否小于10,很明显条件成立,因此{}中的语句会被执行,变量x的值将进行自增。从运行结果图的运行结果可以看出,x的值已由原来的5变成了6。
格式二:if…else语句
if…else语句是指如果满足某种条件,就进行相应的处理,否则就进行另一种处理。例如,要判断一个正整数的奇偶,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。if…else语句的具体语法格式如下:
if (判断条件)
{
执行语句1
……
}
else
{
执行语句2
……
}
上述语法格式中,判断条件是一个布尔值。当判断条件为true时,if后面 { } 中的执行语句1会被执行。当判断条件为false时,else后面 { } 中的执行语句2会被执行。if…else语句的执行流程如下图所示:
小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
if…else语句流程图
接下来通过一个实现奇偶数判断的案例来演示if..else语句的具体用法:
#include
int main()
{
int num = 19;
if (num % 2 == 0)
{
//判断条件成立,num被2整除
printf(''num是一个偶数 '');
}
else
{
printf(''num是一个奇数 '');
}
return 0;
}
运行结果如下图所示:
例中,变量num的值为19,模以2的结果为1,不等于0,判断条件不成立。因此会执行else后面 { } 中的语句,打印“num是一个奇数”。
格式三:if…else if…else语句
if…else if…else语句用于对多个条件进行判断,从而进行多种不同的处理。例如,对一个学生的考试成绩进行等级的划分,如果分数大于等于80分等级为优,如果分数小于80分大于等于70分等级为良,如果分数小于70分大于等于60分等级为中,否则,等级为差。if…else if…else语句的具体语法格式如下:
if (判断条件1)
{
执行语句1
}
else if (判断条件2)
{
执行语句2
}
……
else if (判断条件n)
{
执行语句n
}
else
{
执行语句n+1
}
上述语法格式中,判断条件是一个布尔值。当判断条件 1 为 true 时, if 后面 { } 中的执行语句1会执行。当判断条件 1 为 false 时,会继续执行判断条件 2,如果为 true 则执行语句 2,以此类推,如果所有的判断条件都为 false ,则意味着所有条件均未满足,else后面 { } 中的执行语句n+1会被执行。if…else if…else语句的执行流程如下图所示:
if…else if…else语句的流程图
接下来通过一个对学生考试成绩进行等级划分的案例来演示if…else if…else语句的用法:
#include
int main()
{
int grade = 75; //定义学生成绩
if (grade >= 80)
{
//满足条件 grade >=80
printf(''该成绩的等级为优 '');
}
else if (grade >= 70)
{
//不满足条件 grade >= 80 ,但满足条件 grade >= 70
printf(''该成绩的等级为良 '');
}
else if (grade >= 60)
{
//不满足条件 grade >= 70 ,但满足条件 grade >= 60
printf(''该成绩的等级为中 '');
}
else
{
//不满足条件 grade >= 60
printf(''该成绩的等级为差 '');
}
return 0;
}
运行结果如图所示:
例中,定义了学生成绩 grade 为75。它不满足第一个判断条件 grade >=80,会执行第二个判断条件 grade>=70,条件成立,因此会打印“该成绩的等级为良”。
&多学一招:三元运算符
在C语言中有一种特殊的运算叫做三元运算,它和if…else语句类似,具体语法格式如下:
判断条件 ? 表达式1 : 表达式2
三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。
例如求两个数x、y中的较大者,如果用if…else语句来实现,具体代码如下:
int x = 0;
int y = 1;
int max;
if (x > y)
{
max = x;
} else
{
max = y;
}
上面的代码运行之后,变量 max 的值为 1 。如果 if…else 语句用三元运算来替换,具体代码如下:
int x = 0;
int y = 1;
int max;
max = x > y ? x : y;
这样子代码量是不是就建少了呢?当然了,前提是你的得学会使用啦!、
这些是C/C++能做的