宋体语句那些苦逼日子的学习(C语言)06

查了好多资料,发现还是不全,干脆自己整理吧,最少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

    那些苦逼日子的学习(C语言)06

    

if语句
如果...或者...否则
也就是说,if语句许允序程通过测试表达式的值从两种选项中选择一项。
if语句表达式
if(表达式1){
    语句1;
}else if(表达式2){
    语句2;
}else{
    语句3;
}
语句next;
注意:1.如果if前面没有语句,加上分号
      2.else if 可以现出0 ~ n次
      3.else 可以现出0 ~1次
      4.分支中只有一条一句的时候可以省略{}
面下我们看段代码:
  1. /*
  2. if...else
  3. */
  4. #include <stdio.h>

  5. int main(){
  6.     int salary = 0;
  7.     printf("Please input your monthly salary:");
  8.     scanf("%d",&salary);
  9.     if(salary >= 10000){
  10.          printf("You can fly home---\n");
  11.     }else if(salary >= 5000 && salary < 10000){
  12.          printf("You can take the high-speed rail to go home---\n");
  13.     }else if(salary >= 3000 && salary < 5000){
  14.          printf("You can take the train home---\n");
  15.     }else if(salary >= 1500 && salary < 3000){
  16.         printf("You can take the bus home---\n");
  17.     }else{
  18.         printf("The tragedy of the child, you walk home!\n");
  19.     }
  20.     return 0;
  21. }
复制代码

面下我们看看入输 年 月 ,然后输出这个月有多少天
  1. /*入输年代,输出这个月有多少天*/

  2. #include <stdio.h>

  3. int main(){
  4.      int year = 0,month = 0;
  5.      printf("Please enter the year and month:");
  6.      scanf("%d%d",&year,&month);
  7.      if(month == 4 || month == 6 || month == 9 || month == 11){
  8.          printf("This month 30 days\n");
  9.      }else{
  10.          if(month != 2){
  11.              printf("This month 31 days\n");
  12.          }else{
  13.              if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
  14.                   printf("This month 29 days\n");
  15.             }else{
  16.                  printf("This month 28 days\n");
  17.            }
  18.        }
  19.      }
  20.     return 0;
  21. }
复制代码

要注意,在 if 语句的模版中,语句是一条而不是多条,如果想要 if 语句出口 i 两条或者更多条语句,可以应用复合语句
复合语句:
一对大括号 {} 括起来的一组语句,编译器看成一条语句来理处,
{
....
....
}
就近准则:多个 if 后跟 else 的时候, else 老是与近最的 if 相搭配
switch 语句
在某些情况下 ,须要表达式和多个值行进比拟,找出匹配的值数,行执特定的操纵
C 语言供给了 switch 语句作为 if 语句的换替
switch( 控制表达式 ){
    case  常量表达式 1: 语句 1; break;
    case  常量表达式 2: 语句 2; break;
    ...
    default:  ....
}
控制表达式:算计结果是整形,不能是浮点数或者字符串。 switch 前面必须着跟由 () 括起来的整形表达式。 C 语言把字符看成数整来理处,因此 switch 也可以对字符行进判断
常量表达式:不能包括量变或者函数用调,终究结果必须是数整。常量表达式很像通普的表达式,但是不能包括量变或者函数的用调, 5 是常量表达式, 5+10 也是常量表达式,但是 n+10 不是常量表达式 ( 除非 n 是表现常量的宏 ) ,分支号标中的常量表达式必须是数整 ( 也可所以字符 )
个一每分支中可以包括多条语句,可以不应用 {}
注意:不许允复重的分支存在
各个分支之间的序顺是不定固的。
break 作用:行执 break 语句的时候,致导序程的行执程流跳出 switch 语句,继承行执 switch 前面的语句
须要 break 语句是由于 switch 语句实际上是一种基于算计的跳转,对控制表达式求值的时候,控制会跳转到与 switch 表达式的值数想匹配的分支表利益,分支号标只是一个明说 switch 部内位置的记标。在行执完分支中的最后一条语句的时候,序程控制向下跳转到下一个分支的第一条语句上,从而疏忽了下一个分支号标。如果没有 break 语句 ( 或者其他的某种跳转语句 ) ,控制将会从一个分支继承到下一个分支。
面下我们看看序程 ( 1~100 分之间的得分行进评级 )
  1. #include <stdio.h>

  2. int main(){
  3.     int score = 0;
  4.     printf("Please enter your results:");
  5.     scanf("%d",&score);
  6.     printf("Class:");
  7.     switch((score - 50) / 10){
  8.         case 5:
  9.         case 4:printf("A\n");break;
  10.         case 3:printf("B\n");break;
  11.         case 2:printf("C\n");break;
  12.         case 1:printf("D\n");break;
  13.         default:printf("Fail\n");
  14.     }
  15.     return 0;
  16. }
复制代码




环循语句
环循就是复重行执环循体( 语句块 ) 的一种语句,在 C 语言中,个一每环循都有一个控制表达式。每次行执环循体的时候,都要对控制表达式求值。如果表达式为真,那么继承行执环循。
C 语言供给了三种环循语句:
while   do while    for 语句。当然 goto( 无条件跳转 ) 语句也可以行进环循的控制
for 环循
    for 环循很适合在应用”计数”量变的环循中,当然,这不是它的定限
1.for( 表达式 1; 表达式 2; 表达式 3){
    语句 ;
}
表达式 1 :环循条件的初始化
表达式 2 :控制环循的条件
表达式 3 :修改环循量变,是环循趋于结束 ( 环循的条件为假 )
必定要注意 for环循中各个表达式的行执序顺
看看 for 环循的行执程流图:


未定名1.jpg
  1. #include <stdio.h>

  2. int main(){
  3.     int i = 0;
  4.     for(i = 1;i < 11;i++){
  5.         printf("1 = %2d\n",i);
  6.     }
  7.     return 0;

  8. }
复制代码
2.for 环循的习惯用法
for(i = 0;i < n;i++)...
for(i = 0;i <= n;i++)...
for(i = n;i > 0;i--)...
for(i = n - 1;i >= 0;i--)...
3.在 for 环循中省略表达式
         语句 for 环循远比现在看到的活灵,常通 for 环循用三个表达式来控制环循,但是一些环循可能不须要这么多,因此 C 语言许允省略意任或者部全的表达式
就说下面的那个例子,我们也可以写成这样:
int i = 1;
for(;i < 11;i++){
printf("1 = %2d\n",i);
}
注意:保存第一个表达式和第二个表达式之间的分号,即使省略掉某些表达式,表达式之间的分号也是必须要写的。
上的那个例子,我们还可以这样写:
int i = 1;
for(i = 1;i < 11;){
printf("1 = %2d\n",i++);
}
这个明说白我们也可以应用量变  在环循体行进自加操纵
但省略掉第二个表达式,那么默为认真, for 环循不会止终。那么我们可以在环循体中加增 break 语句,跳出环循
但我们省略掉第一个和第三个表达式的时候,那就和 while 环循没什么区别了。
C99 中,语句 for 的第一个表达式可以换替为一个明声,这个特性可以让我们明声一个于用环循的量变
如:
for(int i = 0;i < 10;i++)
....
须要注意的是,应用这样情势编写完序程后之,在编译的时候须要加上  -std=c99 ,这样就不会报错了
如:
  1. #include <stdio.h>


  2. int main(){
  3.     for(int i = 1;i < 11;){
  4.         printf("%2d\n",i++);
  5.     }
  6.     return 0;
  7. }
复制代码




wps_clip_image-6350.png
逗号运算符
某些时候我们可能爱好编写两个 ( 或者多个 ) 初始表达式,或者希望在没次环循中对几个量变行进自增操纵,应用逗号表达式作为 for 环循语句第一个或者第三个表达式可以实现这些法想:
for(i = 0,j = 0;...;printf(),i++,j--)
表达式 1 ,表达式 2
算计程过
第一步:先算计表达式 1 ,将算计所得的过记丢掉
第二部:算计表达式 2 ,将算计结果作为表达式的终究结果
面下我们写短代码:相信大家的英文水平能看懂哦。

  1. /*
  2. Specifies the number of students, and average scores a total score calculation
  3. */

  4. #include <stdio.h>

  5. int main(){
  6.     int count = 0;//Initialization of the number of students
  7.     printf("Please enter the number of the students:");
  8.     scanf("%d",&count);
  9.     int i = 0; //The loop control variable
  10.     float temp = 0.0;//Temporary storage of student achievement
  11.     float sum = 0.0;//The total score of storage

  12.     for(;i < count;i++){
  13.         printf("Please input the %d grade students:\n",i + 1);
  14.         scanf("%f",&temp);
  15.         sum += temp;
  16.     }
  17.     printf("The total score of the students:%g\nGrade point average:%g\n",sum,sum/count);
  18.     return 0;
  19. }
复制代码
for 环循的嵌套
应用 for 环循嵌套可以实现一些庞杂的算法:
for(){
for(){
....
}
}
略微玩一下, 99 乘法表;嘿嘿

  1. #include <stdio.h>

  2. int main(){
  3.     int i = 1,j = 1;
  4.     for(i = 1;i < 10;i++){
  5.         for(j = 1;j < i + 1;j++){
  6.             printf("%d*%d=%2d\t",j,i,i * j);
  7.         }
  8.         printf("\n");
  9.     }
  10.     return 0;
  11. }
复制代码



while 环循
while( 表达式 ) 语句
判断表达式的结果,如果为真,行执语句,返来回继承判断表达式,环循往复,道知表达式的结果为假
int i = 1;
while(i < 11 ){
printf(“%d ”,i++);
}
printf(“\n”);
C 语言中两种经常使用的无限环循 ( 死环循 ) 方法:
1.while(1) 语句
2.for(;;;) 语句
来点代码:

  1. /* Input number, sum of these numbers*/

  2. #include <stdio.h>

  3. int main(){
  4.     int data = 0;//Data is temporarily stored user input
  5.     int sum = 0;
  6.     while(1){
  7.         printf("Please enter an integer (0: exit):");
  8.         scanf("%d",&data);
  9.         if(data == 0) break;
  10.             sum += data;
  11.     }
  12.     printf("The sum of all integer:%d\n",sum);
  13.     return 0;
  14. }

复制代码
do while 环循
语句 do while
do{
环循体 ;
}while( 表达式 );
注意: do - while  前面有分号
虽然序程中 while 语句现出的次数比 do - while 语句多,但是后者对于最少一次的环循说来非常的便利


  1. /*Calculation of an integer number of bits*/

  2. #include <stdio.h>

  3. int main(){
  4.     int data = 0;
  5.     int count = 0;
  6.     printf("Please enter an integer:");
  7.     scanf("%d",&data);
  8.     do{
  9.         data /= 10;
  10.         count++;
  11.     }while(data != 0);
  12.     printf("The integer number:%d\n",count);
  13.     return 0;
  14. }

复制代码

空语句
1.空语句经经常使用来编写空环循体的环循
2.C 序程员习惯性的把空语句独单放在一行
3.不小心在 if,while,for 中的圆括号后放置分号会创立空语句
break  coutinue 语句
break switch 语句:跳出 switch 语句
环循语句:跳出环循
coutinue :只能适用在环循中
结束本次环循,开始下一次环循


  1. /*Judge a prime integer is it right*/

  2. #include <stdio.h>

  3. int main(){
  4.     int data = 0;
  5.     printf("Please enter an integer:");
  6.     scanf("%d",&data);
  7.     int i = 2;
  8.     for(;i < data;i++){
  9.         if(data % i == 0){
  10.             printf("Is not a prime\n");
  11.             break;
  12.         }
  13.     }
  14.     if(i == data)
  15.         printf("prime\n");
  16.     return 0;
  17. }

复制代码
  1. /*Cannot print 1~~30 between 4 integer integer*/

  2. #include <stdio.h>

  3. int main(){
  4.     int i = 1;
  5.     for(;i < 30;i++){
  6.         if(i % 4 == 0){ //If the number is not 4 complete will not print
  7.             continue;
  8.             printf("%d ",i);
  9.         }
  10.     }
  11.     printf("\n");
  12.     return 0;
  13. }

复制代码
goto 语句
无条件跳转 ( 不推荐应用 ), 就不多做绍介了
label( 标识符 ):
语句 ;
...
注意标识符的定名范规
不要省略标识符前面的冒号

    每日一道理
人生好似一条河,既有波澜壮阔,汹涌澎湃,也有清风徐来,水波不兴;人生好似一首歌,既有欢乐的音符,也有悲壮的旋律;人生好似一条船,既有一帆风顺时,也有急流险滩处。愿我们都能勇于经受暴风雨的洗礼,接受生活的挑战和考验!

    

 

    

 

    首发址地http://www.bcwhy.com/thread-18659-1-1.html

文章结束给大家分享下程序员的一些笑话语录: 腾讯总舵主马化腾,有人曾经戏称如果在Z国选举总统,马化腾一定当选,因为只要QQ来一个弹窗”投马总,送Q币”即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值