No.5 运算符和流程结构语句

常用运算符分类

算术运算符

赋值运算符

比较运算符

逻辑运算符

类型转换

原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。

1.自动转换(隐式转换):遵循一定的规则,由编译系统自动完成。

#include <stdio.h>

 int main()

{

       int num = 5;

       printf("s1=%d\n", num / 2);

       printf("s2=%lf\n", num / 2.0); 

       return 0;

}

2.强制类型转换:把表达式的运算结果强制转换成所需的数据类型。

#include <stdio.h>

 int main()

{

       float x = 0;

       int i = 0;

       x = 3.6f;

       i = x;                   //x为实型, i为整型,直接赋值会有警告

       i = (int)x;            //使用强制类型转换

       printf("x=%f, i=%d\n", x,i,);

       return 0;

}

程序流程结构

顺序结构:程序按顺序执行,不发生跳转。

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

 

选择结构:依据是否满足条件,有选择的执行相应功能。

if              if...else         if…else if…else   

switch  

#include <stdio.h>

 int main()

{

       char c;

       c = getchar();

       switch (c) //参数只能是整型变量

       {

       case '1':

              printf("OK\n");

              break;//switch遇到break就中断了

       case '2':

              printf("not OK\n");

              break;

       default://如果上面的条件都不满足,那么执行default

              printf("are u ok?\n");

       }

       return 0;

}

 

三目运算符

条件 ? 结果1 : 结果2

 "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果

 

#include <stdio.h> 

int main()

{

  int a = 1;

  int b = 2;
  int c;

c = ( a > b ? a : b );
printf("c2 = %d\n", c);

return 0;
}

 

循环结构:依据条件是否满足,循环多次执行某段代码。

while 

     

do...while 

 

for

for(表达式1;表达式2;表达式3)

循环体语句;

1.计算表达式1

2.判断表达式2,为真则执行循环体语句然后再次判断表达式2的真假,为假则循环结束

 

 

嵌套循环

while嵌套while

while()

{

 ...

 while()

 {...}

 ...

}

 

do while 镶嵌do while

do

{

 ...

 do

 {...}

 while();

 ...

}while();

 

for 镶嵌for

for( ; ; )

{

 ...

for( ; ; )

 {...}

 ....

}

 

while镶嵌do while

while()

{

 ...

 do

  {...}

  while();

  ...

}

 

for镶嵌while

for( ; ; )

{

 ...

while()

 {...}

  ...

}

 

 

跳转语句break、continue、goto

 break:

1.当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构

2.当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码

3.当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码

continue:

continue语句用于结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定

unsigned char i, j=50;

for (i=0;i<100;i++)
{
       if (i>j)  continue ;
       j=i;
}
goto:   (在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法)
goto 语句允许把控制无条件转移到同一函数内的被标记的语句
当程序循环到i=51时,执行continue语句,结束本次循环,即不执行下面的j=i语句,而是执行i++,即i=52,故i<100,循环的条件成立,循环继续执行,直到i<100的条件不成立,for循环才终止
 
 
 
作业提高
#include <stdio.h>

int main()
{
	int a;
	scanf("%d",&a);
	if(a<=60&&a>=0)
		printf("E\n");
	else if(a>60&&a<=69)
		printf("D\n");
	else if(a>=70&&a<=79)
		printf("C\n");
	else if(a>=80&&a<=89)
		printf("B\n");
	else if(a>=90&&a<=100)
		printf("A\n");
	else
		printf("成绩输入出错\n");
}
#include <stdio.h>

int main()
{
    int w;
    scanf("%d",&w);
    switch(w)
    {
        case 1:
        printf("Monday\n");
        break;
        case 2:
        printf("Tuesday\n");
        break;
        case 3:
        printf("Wednesday\n");
        break;
        case 4:
        printf("Thursday\n");
        break;
        case 5:
        printf("Friday\n");
        break;
        case 6:
        printf("Saturday\n");
        break;
        case 7:
        printf("Sunday\n");
        break;
        default:printf("wrong\n");
    }
}
#include <stdio.h>

int main()
{
	int i;
	for(i=1;i<=100;i++)
		if(i%7==0)
		printf("能被7整除的数%d\n",i);
}
#include <stdio.h>

int main()
{
    int i=1;
    while(i<=100)
    {
        if(i%7==0)
            printf("能被7整除的数%d\n",i);
        i++;
    }
    
}
#include <stdio.h>

int main()
{
    int i;
    int a=0;
    int b=0;
    int c=0;
    for(i=0;i<1000;i++)
        a=i/100;
        b = i / 10 % 10;
        c = i % 10;

         if(i==a*a*a+b*b*b+c*c*c)
         printf("%d是水仙花数\n",i);
        
}

  

  

 
 

猜你喜欢

转载自www.cnblogs.com/yangchenyu2000/p/10674624.html
今日推荐