C语言轻松学习-4

好了,我们接着学习循环性语句,一看,为何要学循环腻?那是因为我们运行程序时无时无刻都在使用着循环,若程序员使用循环不当,则可能会导致死循环和循环占用用户电脑内存,所谓死循环,不一定是坏处,适当运用死循环也会为我们实现一些很好的效果,分别为:条件=逻辑值为真或表达式为真

while(条件)
{
  循环体 ;
}
do
{
  循环体 ;
}while(条件) ;
for(初始值;条件;更改变化量)
{
  循环体; 
}

我的印象里还有个“do loop”好像是个死循环,有许多程序员都要求删除该语句,,莫非是真滴删除了?,咱也不用管那么多,先学会上述三条语句,再拓展其他知识。

我们先用第一条,来计算1+2+3+4+5+6+……+98+99+100,我们求100以内的正整数之和,代码如下:

#include<stdio.h>
int main()
{
  int sum=0,i=1;
  while(i<=100)
  {
    sum = sum + i;
    i++;
  }
  printf("%d\n",sum);
  return 0;//返回值可写可不写,这里截图我忘写了,,不影响,只影响规范性
 }

调试截图:正确结果5050,和那个“数学王子-高斯”算的一样。

接下来我们用第二条循环代码试试看,代码如下:

#include<stdio.h>
int main()
{
  int sum=0,i=1;
  do
  {
    sum = sum + i;
    i++;
  }while(i<=100);
  printf("%d\n",sum);
  return 0;//返回值可写可不写,这里截图我忘写了,,不影响,只影响规范性
 }

调试截图:我们发现二者好像并没有什么区别,

接下来,我来给大家解释一下二者的区别,前者(满足条件或逻辑值为真则执行循环体),而后者(第一遍不需要管条件,先执行一遍后判断条件是否满足或逻辑值是否为真),因此,我们使用第二条循环语句”do while();”时能保证我们的循环先执行一次。

代码如下:

#include<stdio.h>
int main()
{
  int i;
  scanf("%d",&i);
  while(i>1)
  {
    printf("%d\n",i);
    i++;
  }
  return 0;//返回值可写可不写,这里截图我忘写了,,不影响,只影响规范性
 }

我们解释一下代码,输入变量i的初始值为1,然而我们的循环必须是i>1时才能启用,所以我们用”while()”语句不能达到我们想要的结果,

调试截图如下:

所以,我们可以使用”do while();”来实现上述上条循环不能实现的作用,

代码如下:

#include<stdio.h>
int main()
{
  int i;
  scanf("%d",&i);
  do
  {
    printf("%d\n",i);
    i++;
  }while(i>1);
  return 0;
 }

调试截图:“do while();”语句成功实现,因为它是 先执行,再判断。执行完第一遍后,i=2,所以刚好满足了下面“while();”的条件为真

上述这两条循环语句腻,我们都不经常使用,我们经常使用第三条语句”for()”语句,因为它相对于前两条语句来说,比较明了,清晰,它能一眼看出来控制循环的变量是如何变化的。例如,我们用”for()”循环来计算100以内的和(就是上述两个循环都解决的问题),

代码如下:在“for(定义变量并赋值;条件或逻辑值;控制循环的变量的变化)”

#include<stdio.h>
int main()
{
  int sum=0;
  for(int i=1;i<=100;i++)
  {
    sum = sum + i;
  }
  printf("%d",sum);
  return 0;
 }

调试截图:

代码可以这样写:“for(对初始值赋值;条件或逻辑值;控制循环的变量的变化)”

#include<stdio.h>
int main()
{
  int sum=0,i;
  for(i=1;i<=100;i++)
  {
    sum = sum + i;
  }
  printf("%d",sum);
  return 0;
 }

调试截图:

同时代码也可以这样写:“for(空;条件或逻辑值;空)”

#include<stdio.h>
int main()
{
  int sum=0,i=1;
  for(;i<=100;)
  {
    sum = sum + i;
    i++;
  }
  printf("%d",sum);
  return 0;
 }

调试截图:

对此,我们一般才用,第一种写法,因为这样比较美观,“for(;;)”循环语句比较灵活,通常作为我们编程是经常使用的循环语句。

小结

要注意“if()”“switch()”“while()”“for(;;)”这些小函数语句后方没有结束符号分号“;”,这点大家要记清楚,这里很容易出错。

注意“switch(数据)”中 “case 对应数据:事件;” 要记得,”case”后面是 空格+对应数据+英文冒号+相应事件;

注意,”if()”和”else”是一一对应的。

注意区分“while()”和“do while();”的区别,前者是 先判断,后执行。后者是 先执行一遍,后判断。

更注意,“for(;;)”循环语句的小括号中,是分号“;”相连接的,很多人都会自然而然的写成 逗号“,”导致程序编译时出错。

习题

1.用户输入两个数值,要求 程序自动比较数值大小并由大向小的输出出来。(代码)

2.用户输入两个数值,要求 程序自动比较数值大小并由大向小的输出出来,并求出这两个数值的差的绝对值。(代码)

3.计算1000以内的和(1+2+3+4+5+6+……+999+1000),并将结果输出出来。(代码+输出内容)

4.计算下方代码的输出结果。(输出内容)

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

参考答案在下一页。

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

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

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

评论1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址 (选填)
  1. #1
    999999
    lzonel2019-11-05 23:23:46回复