详解C语言 三大循环 四大跳转 和判断语句

所属分类: 软件编程 / C 语言 阅读数: 84
收藏 0 赞 0 分享

三大循环for while 和 do{ }while;

四大跳转 :

无条件跳转语句 go to;

跳出循环语句 break;

继续跳出循环语句 continue;

返回值语句 return

判断语句 if,if else,if else if else if...else

ifelse 组合

if(0 == x)
if(0 == y) error();
else{
//program code
}

else到底与那个if配对 C语言有这样的规定:

else 始终与同一括号内最近的未匹配的if语句结合。

if语句后面的分号

if(NULL!= p) ;
fun();

这里的fun()函数并不是在NULL != p 的时候被调用,而是任何时候都会被调用。问题就出
在if 语句后面的分号上。在C 语言中,分号预示着一条语句的结尾,但是并不是每条C 语言

语句都需要分号作为结束标志。if 语句的后面并不需要分号,但如果你不小心写了个分号,
编译器并不会提示出错。因为编译器会把这个分号解析成一条空语句。也就是上面的代码实

际等效于:

if(NULL != p)
{
;
}
fun();

switch、case 组合

if、else 一般表示两个分支或是嵌套表示少量的分支,但如果分支很多的话……还是用
switch、case 组合。

基本格式为:

switch(variable)
{
case value1;
//code;
break;
case value2;
//code;
break;
case value3;
//code;
break;
case value4;
//code;
break;
default:
break;
}

1、case 语句后面不要忘记加break;

2、 最后必须使用default 分支。即使程序真的不需要default 处理,也应该保留

语句:

default :

break;

这样做并非画蛇添足,可以避免让人误以为你忘了default处理应该得要。

case后面必须是整型或字符型的常量或常量表达式。

do、while、for 关键字

C 语言中循环语句有三种:while 循环、do-while 循环、for 循环。

while 循环:先判断while 后面括号里的值,如果为真则执行其后面的代码;否则不执

行。while(1)表示死循环。死循环有没有用呢?看下面例子:

比如你开发一个系统要日夜不停的运行,但是只有操作员输入某个特定的字符‘#'才

可以停下来。

while(1)
{
if(‘#'== GetInputChar())
{
break;
}
}

break 与continue 的区别

break 关键字很重要,表示终止本层循环。现在这个例子只有一层循环,当代码执行到

break 时,循环便终止。

#include<stdio.h>
int main()
{
flaot area,pi=3.1415926;
int r;
for(r=0;r<100;r++)
{
area=pi*r*r;
if(area>100) //当area>100时就跳出for循环
break;
}
printf("area=%d\n",area);
}

continue 表示终止本次(本轮)循环。当代码执行到continue 时,本轮循环终止,进入下一轮循环。具有过滤功能。

#include<stdio.h>
int main()
{
inti=0,sum=0;
for(i=0;i<10;i++)
{
if(i%3==0)//当i%3==0时就continue;继续下一次循环 把0~10中3的整数倍滤除掉
{
printf("i=%d",i);
continue;
}
sum=sum+i;
}
printf("sum=%d\n",sum);
}

do-while 循环:先执行do 后面的代码,然后再判断while 后面括号里的值,如果为真,

循环开始;否则,循环不开始。其用法与while 循环没有区别,但相对较少用。

for 循环:for 循环可以很容易的控制循环次数,多用于事先知道循环次数的情况下

循环语句的注意点

长循环在最内层,效率高

for (col=0; col<5; col++ )
{
for (row=0; row<100; row++)
{
sum = sum + a[row][col];
}
}

长循环在最外层,效率低

for (row=0; row<100; row++)
{
for ( col=0; col<5; col++ )
{
sum = sum + a[row][col];
}
}

循环要尽可能的短,要使代码清晰,一目了然

For循环举个例子 9*9乘法表

#include<stdio.h>
int main()
{
int i,j,sum=0;
printf("输出9*9乘法表:\n");
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
sum=i*j;
printf("%d*%d=%d ",j,i,sum);
}
printf("\n");
}
return 0;
}

打印出:

输出9*9乘法表:

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=92*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

记得开始学c语言时对于这些打印感觉很难,其实就是不会用for,没有好的程序理解能力,也就不会想到这些算法,现在慢慢有了基础,对于这些小程序也就运用好的很娴熟了。

return 用来终止一个函数并返回其后面跟着的值。

return (Val);//此括号可以省略。但一般不省略,尤其在返回一个表达式的值时。

以上所述是小编给大家介绍的详解C语言 三大循环 四大跳转 和判断语句 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

用标准c++实现string与各种类型之间的转换

这个类在头文件中定义, < sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本
收藏 0 赞 0 分享

C++如何通过ostringstream实现任意类型转string

再使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法
收藏 0 赞 0 分享

C/C++指针小结

要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区
收藏 0 赞 0 分享

C++ 类的静态成员深入解析

在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象
收藏 0 赞 0 分享

C++类的静态成员初始化详细讲解

通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化
收藏 0 赞 0 分享

C++类静态成员与类静态成员函数详解

静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值
收藏 0 赞 0 分享

C++中的friend友元函数详细解析

友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样
收藏 0 赞 0 分享

static全局变量与普通的全局变量的区别详细解析

以下是对static全局变量与普通的全局变量的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
收藏 0 赞 0 分享

C++ explicit关键字的应用方法详细讲解

C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?下面就让我们一起来看看这方面的知识吧
收藏 0 赞 0 分享

教你5分钟轻松搞定内存字节对齐

随便google一下,人家就可以跟你解释的,一大堆的道理,我们没怎么多时间,讨论为何要对齐.直入主题,怎么判断内存对齐规则,sizeof的结果怎么来的,请牢记以下3条原则
收藏 0 赞 0 分享
查看更多