您的位置:首页 > 编程语言 > C语言/C++

【C语言连载二】--------选择结构、循环结构、跳转语句(附几个例子)

2015-08-18 08:19 573 查看
一、选择结构:

1、if 语句
     if — else 语句
     if — else if — else 语句

2、switch语句、穿透
   注意:
  (1)switch后面的小括号中的表达式只能为char, int, short, long, 枚举类型,且不能为空。
  (2)case语句表达式的值只能为:char, int, short, long, 枚举类型,且只能是常量。
  (3)若无break,则会穿透,//当执行switch语句时,若没有遇到break,则自动进入下一个case继续执行。
  (4)若条件较多,且数据类型为整型,switch语句比if语句效率高。
//输入成绩,判断等级
    float score = 0;

    printf("enter your score:");

    scanf("%f", &score);

  

    if (score < 0 || score > 100) {

        printf("输入错误");

        return 0;

    }

  

    int result = score / 10;

  

    switch (result) {

        case 10:

        case 9:

            printf("优秀\n");

            break;

        case 8:

            printf("良好\n");

            break;

        case 6:

        case 7:

            printf("中等\n");

            break;

        case 5:

        case 4:

        case 3:

        case 2:

        case 1:

            printf("差\n");

            break;

        default:

            printf("人才\n");

            break;
    }
二、循环结构
1、while循环
          while ( 条件 ) {
          }    //先判断,在执行
2、do---while
          do {
            } while ( 条件 );    // 先执行,在判断

while[b]循环与do---while[/b]
初始条件不符合时,do——while也会循环一次,而while循环一次也不会执行

3、for 循环
/*******for循环*********/
       for ( int i = 1  i < 100 ;   i++)
                (1)            (2)          (4)
       {
                     (3)
       }

注意:
   1)、for循环的顺序         //执行步骤:(1),(2),(3),(4)
   2)、小括号中一定要有两个分号
三、跳转语句
1、break跳出当前循环
      break语句用于switch语句和循环语句
2、continue作用,忽略此次循环剩下的操作,直接进入下一次的循环
3、goto 无条件跳转

/*1、一球从100米高度自由落下,每次落地后反跳回原高度的一半;在落下,

     求它在第三次落地时,共经过多少米?第三次反弹多高?
     */
      float h
= 100,sum = 0;
    for (int i
= 1; i <= 3;
i++) {

        sum += h; //===》sum
= sum + 第 i 次落下高度

        h = h / 2; //第i 次反弹高度

        sum += h; //===》sum
= sum + 第 i 次反弹高度

    }

    printf("它在第三次落地时,共经过%.2f米,第三次反弹的高度是%.2f米。 \n",sum-h,h);
   
   

    //2、打印两幅图案

    /*

     输出图案:

     *

     ***

     *****

     *******

     *****

     ***

     *

    

     */
方法一:
        int i
= 0, j = 0,k
= 0; //i 控制行数, k 控制一行*的数量

        for (i = 1;
i <= 4; i++) { //输出上面4行的*

                for (k=1;
k < 2* i; k++) {

                    printf("*"); //输出一行的*

   

                }

                 printf("\n"); //输完一行后换行

        }

                for (i = 1;
i <= 3; i++) {//输出第5、6、7行的*

                        for (k=1;
k <= 7 - 2 *
i; k++) {

                            printf("*"); //输出一行的*

                        }

                            printf("\n"); //输完一行后换行

                        }

方法二:

  
int
max =
7;
  for
(int
i =
0; i < max; i++) {
       
for (int
j =
0; j <
2 * i +
1 && j <
2 * (max -
1 - i) +
1; j++) {

           
printf("*");

        }

       

       
printf("\n");
    }

    /*

     3、输出图案:

        *

       ***

      *****

     *******

      *****

       ***

        *

    

    */
方法一:
    int i = 0,
j = 0,k = 0;//i 控制行数, j 控制空格, k 控制一行*的数量

    for (i = 1;
i <= 4; i++) { //输出上面4行的*

        for (j=1;
j<=4-i; j++) {

            printf(" "); //输出* 前面的空格

        }

            for (k=1;
k < 2* i; k++) {

                printf("*"); //输出一行的*

              

            }

             printf("\n"); //输完一行后换行

    }

            for (i = 1;
i <= 3; i++) {//输出第5、6、7行的*

                for (j=1;
j<=i; j++) {

                    printf(" ");  //输出* 前面的空格}

                }

                    for (k=1;
k <= 7-2*
i; k++) {

                        printf("*"); //输出一行的*

                    }

                        printf("\n"); //输完一行后换行

                    }

   
方法二:

   
int max =
7;
   
for (int
i =
0; i < max; i ++) {

       
//打印空格
0-3 1-2 2-1 3-0 4-1 5-2 6-3

       
for (int
j =
0; j < (max -
1)/2
- i || j < i - (max -
1)/2
; j++) {

           
printf(" ");

        }

       
//打印*

       
for (int
j =
0; j <
2 * i +
1 && j <
2 * (max -
1 - i) +
1; j++) {

           
printf("*");

        }

       
printf("\n");
    }

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息