C语言轻松学习-5

OK,昨天看到了某个语言交流群有人在问问题,这个问题我也忘了,总之是考察一条语句的,“?:”,这条语句的意识是:“表达式或逻辑值?真(非零):假(零)”这是逻辑判断里最可能出选择题,大家要判断条件或逻辑值是否为真,若为真,则执行 真 的那条语句,反之,则执行 假 的那条语句。

想起来了,还有一种据说“不兼容”的循环,“标记: 循环体 goto 标记;”从英文来理解,goto 标记;意思是回到标记的地方重新执行,然后又运行到 goto 标记;,继续回到标记处重复执行,变为无限循环(即死循环),,我们直接来上代码,方便理解,

代码如下:

#include<stdio.h>
int main()
{
  zs:
  printf("1\n");
  printf("2\n");
  goto zs;
  printf("3\n");
  return 0;
}

调试截图如下:无限循环,循环体为输出1和2,这条语句是,循环到标记处,无限循环(死循环),非常多的程序员都要求删除该语句,因为实用性非常小

因为,此代码是 goto到标记的地方,所以我们还可以把 标记 放在 goto 后面,这样就可以实现跳转,而不是无限循环(死循环)

代码如下:

#include<stdio.h>
int main()
{
  printf("1\n");
  goto zs; 
  printf("2\n");
  zs:
  printf("3\n");
  return 0;
}

调试截图如下:这里实现了跳转的功能,所以goto语句又被称为无条件跳转语句,你可以让它跳转至任意位置,

不过这语句很少人使用,因为实用性不大。

接下来再介绍一下,我们使用循环语句时,突然不想让它继续循环下去了,我们就可以使用“break;”语句,

“break;”语句是 直接跳出循环(立刻结束循环),同时还有一个“continue;”语句,

“continue;”语句是跳过这次循环,记住是跳过这次循环(只是这次循环我不干了,我干下一次循环),而不是跳出循环(结束循环)

我们直接举例子,这样大家更容易理解,

“break;”语句代码:

#include<stdio.h>
int main()
{
  for(int i=1;i<=5;i++)
  {
    printf("%d\n",i);
    if (i==3)
    {
      break;
    }
  }
  return 0;
}

“break;”语句代码调试截图:发现没有继续输出了,因为i=3时,已经“break;”跳出循环(结束循环)了,即使没有循环完,也要结束循环了

接下来是,“continue;”代码如下:

#include<stdio.h>
int main()
{
  for(int i=1;i<=5;i++)
  {
    if (i==3)
    {
      continue;
    }
    printf("%d\n",i);
  }
  return 0;
}

“continue;”代码调试截图如下:“continue;”这里没有输出3,说明这个输出3被“continue;”跳过了,意思是结束本次下方的循环体(此次不再执行下方循环体),但并不会结束循环,而是接着继续循环。

——————————————————————————————————————————————————————————————————

突然补充个,”scanf();”和”scanf_s();”的区别,

“scanf();”不会检查输入边界,可能会导致数据溢出。

“scanf_s();”会检查输入边界,不会导致数据溢出。

2、比如输入name[5],scanf(“%s”,name),如果输入wangsicong,则会使得icong溢出进入其他地方,造成程序错误;

scanf_s(“%s”,name),则只会接收前5个输入,其后的无效,避免了程序的漏洞。

此段摘自:庆志的小徒弟点击进入原文章

——————————————————————————————————————————————————————————————————

小结:

1.嵌套循环要理解 外层“行” 内层“列”的含义。

2.要多多练习嵌套循环,多多动手。

3.了解 goto 标志;  的运行规律,可以实现死循环,也可以实现无条件跳转。

4.区分“break;”语句和“continue;”的区别,前者是结束循环,后者是结束本次循环。

习题:

1.运用嵌套循环输出一个等腰三角形。(代码+截图)

2.运用嵌套循环计算 10!(10的阶乘)。(代码+截图)

3.运用嵌套循环计算 用户输入某个数值的阶乘。(代码)

4.利用 goto 分别设置一款死循环和无条件跳转事件。(代码+截图)

5.推一推下方的代码,看看输出了什么(输出内容)

#include<stdio.h>
int main()
{
  int i,j;
  for(i=4;i>0;i--)
  {
    for(j=0;j<i;j++)
    printf("*");
    printf("\n");
  }
  return 0;
}

答案在下一页,

1 2 3 4
未经允许不得转载:晗雅|星空 » C语言轻松学习-5
分享到:

请选择你看完该文章的感受:

9瞧一瞧 0扯淡 3学到了 1不懂 8正能量 1无聊

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (选填)