C语言基础的学习将要告一段落,接下来对前面的知识进行总结。之后就是C语言高级知识的学习了,让我们拭目以待!
一、跳转控制语句
1.break
(1)概念
break语句用于终止某个语句块的执行,用在switch语句或者循环语句中。
(2)流程图:
(3)示例代码:
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++)
{
if (i == 3)
{
break;
}
printf("%d \n", i);
}
return 0;
}
输出结果:
0
1
2
等于3的时候中止,不会继续循环下去
(4)案例
编写程序,要求输入一个数字,判断该数字是否是质数。
说明:质数指只能被1和自身整除且大于1的数字。
#include <stdio.h>
int main()
{
int a,count=2;
scanf("%d",&a);
for(int b=2;b<=a;b++)
{
if(a%b==0)
{
count++;
break;
}
}
if(count==2)
{
printf("%d是质数",a);
}
else{
printf("%d不是质数",a);
}
return 0;
}
2.coutinue
(1)简单介绍
结束本次循环,继续执行下一次循环。能够跳过循环中的某个数。
(2)流程图
(3)代码示例
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++)
{
if (i == 3)
{
continue;//等于3结束执行,下一次循环继续
}
printf("%d \n", i);//只有3没有经过打印便中止
}
return 0;
}
输出结果:
0
1
2
4
5
6
7
8
9
(4)案例分析
案例:输入100以内的数字,跳过7的倍数或包含7的数字
#include <stdio.h>
int main()
{
for(int a=1;a<=100;a++)//罗列1~100
{
if(a%7==0||(a%10==7)||(a/10==7))//筛选条件7的倍数或含7(十位是7或个位是7)的数,满足其一即可
{
continue;//终止本次循环,并执行下一循环
}
printf("%d ",a);
}
return 0;
}
3.goto
(1)介绍
goto语句是一种跳转语句,它允许程序控制流程在代码中跳转到带有标签(label)的语句处,标签(label)的名称可以自行设置,需要满足标识符规范。
ps,我们在开发中不建议使用goto语句,但我们需要掌握 goto 语句的执行流程,以能够看懂其他开发者的代码中可能出现的 goto 语句。
(2)流程图
(3)代码示例
#include <stdio.h>
int main()
{
printf("start \n");
goto label1; // label1是标签名
printf("ok1 \n");
printf("ok2 \n");
label1:
printf("ok3 \n");
printf("ok4 \n");
return 0;
}
输出结果:
start
ok3
ok4
(4)案例
使用goto语句实现循环输出数字1 ~ 5。
#include <stdio.h>
int main()
{
//使用goto语句实现循环输出数字1 ~ 5。
//声明定义变量
int a=1;
//循环罗列所有数
next://标签
if(a<=5)
{
printf("%d\n",a);
a++;
}
goto next;//在标签处继续执行
return 0;
}
二、断点调试
在开发中,程序员发现一个非常诡异的错误,怎么看源代码都发现不了这个错误,这时老程序员就会温馨提示,可以使用断点调试,一步一步的看源码执行的过程,从而发现错误所在。
1.介绍
断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下,然后程序可以进行分析从而找到这个Bug。
2.设置断点
在代码行号的前面单击中即可添加断点,再次点击可以取消断点; 或者使用快捷键 F9,会给光标所在行添加或取消断点。
启动调试之后,代码执行到断点会暂停。
3.逐过程调试
使用逐过程断点调试查看下面代码中变量的变化情况,逐过程是从断点开始逐条语句执行,执行一条语句就暂停一次,可以点击“逐过程”按钮或使用快捷键F10执行下一条语句。
#include <stdio.h>
int main()
{
int sum = 0;
int i = 0;
for(i = 0; i < 10; i++) {
sum += i;
printf("\n i=%d", i);
printf("\n sum=%d", sum);
}
printf("退出for循环了~~");
return 0;
}
4.逐断点调试
当我们程序中存在多个断点时,程序执行到第一个断点开始暂停,我们想直接执行到下一个断点再次暂停,而不是逐行执行到下一个断点,我们可以单击“继续”按钮或者使用快捷键F5。
#include <stdio.h>
int main()
{
int n1 = 10;
int n2 = 40;
int res = n1 = n2;
printf("res=%.2f", res);
printf("\nhello1");
printf("\nhello2");
printf("\nhello3");
printf("\nhello4");
printf("\nhello5");
printf("\nhello6");
return 0;
}