三、循环与判断

    @if语句:根据比较的结果,决定做、还是不做某些动作,就要用到if语句。一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续执行下面的其他语句。

    @计算机的判断:计算机的智能是建筑在规则的基础上的,在遇到情况的时候,根据事先制定的规则做出判断,是计算机最基本的能力。能做判断的基础,是能对数据做比较,比较就是关于两个数据是否相等、谁大谁小的结论,这需要用到关系运算:对两个数据之间的关系的运算。

    C语言提供了六个关系运算符:

        · == 相等

        · != 不相等

        · > 大于

        · >= 大于或等于

        · < 小于

        · <= 小于或等于

    注意其中含有两个字符的运算符:==、!=、>=、<=中的两个字符必须紧紧连在一起,中间不能插入空格。关系运算的结果是一个逻辑值,逻辑值只有两种个能的值:true或1(真,表示成立)或flase或0(假,表示不成立)。当两个值的关系符合关系运算符的预期时,

关系运算的结果为true,否则为flase。

    @关系运算符的优先级:所有关系运算符的优先级都比算术运算的优先级低,但是比赋值运算的优先级高。判断是否相等的运算符==和!=的优先级比其他的关系运算符都低。

而连续的关系运算是从左到右进行的。

    @找零计算器:它需要用户做两个操作,其一输入购买的金额,输入支付的票面,而找零计算器则根据用户的输入做出相应的动作:计算并打印找零,或告知用户当前余额不足以购买。

        找零计算器代码:

#include <stdio.h>
int main()
{
  // 初始化
  float price = 0;
  float bill = 0;
  // 读入金额和票面
  printf("请输入金额:");
  scanf("%f", &price);
  printf("\n");
  printf("请输入票面:");
  scanf("%f", &bill);
  //计算找零
  printf("应该找您:%f\n", bill-price);
  return 0;
}

    @比较两个数的大小

#include <stdio.h>
int main()
{
  int a, b, max;
  printf("Please input two numbers that are different: \n");
  scanf("%d %d", &a, &b);
  max=b;	
  if(a>b)
  max=a;
  printf("The bigger one is %d.\n", max);
  return 0;
}

    @if语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作。循环语句可以多次执行其他语句,它检查一个逻辑条件是否满足,只在循环满足的时候执行它的循环体。 

    @while语句是一个循环语句,他会首先判断一个条件是否满足,如果满足条件,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号就是循环体。

    @do-while和while循环很像,唯一的区别是do-while循环在循环体执行结束的时候才会判断条件。也就是说,循环体至少会执行一遍,然后再来判断条件。与while相同的是,条件满足时执行循环,条件不满足时结束循环。

    @判断一个数的位数 在C语言中long long型的输入输出格式是 %I64d 或 %lld。有时需要在特定的环境中,根据所给规则使用其中一种。

 

#include <stdio.h>
int main()
{
  long long num;
  int c=0;
  scanf("%lld", &num);
  while(num!=0)
  {
  ++c;
  num/=10;
  }
  printf("%d\n", c);
  return 0;
}

    @如果我们把while翻译作“当”,那么一个while循环的意思就是:当条件满足时,不断地重复循环体内的语句。

    @循环执行之前,判断是否继续循环,所以有可能循环一次也没有被执行。

    @条件成立是循环继续的条件。

    @do-while循环,在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,在来检查循环体的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。do-while语句最后while();一定要有分号!

    @for循环,像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而没执行一轮循环,计数器值以一定步进进行调整。例如:

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

    

    @在做求和程序时,记录结果的变量应该初始化为0,而做求积的程序时,记录结果的变量应该初始化为1。

    @将for循环的控制变量声明放在条件判断的圆括号里,只有在C99标准里才能行。否则编译出错!下面的例子为非C99环境,例如:

int i;
for(i=1; i<=n; i*=2) //这种是对的

for(int i=1; i<=n; i*=2) //这种是不对的

  

    @for循环的条件判断里的三个语句可以没有其中任意一个!例如:

#include <stdio.h>
int main()
{
  int n;
  scanf("%d",&n);
  int i=n;
  int fact=1;
  for(; n>1; --n)
  fact*=n;
  printf("%d!=%d.\n",i, fact);
  return 0;
}

  

    @for循环的格式:for(初始动作;条件;每轮的动作){}。for(;条件;)==while(条件)。 

猜你喜欢

转载自www.cnblogs.com/ozxics/p/10646515.html