慕课网c语言入门学习笔记(continue,switch,goto)

1.打一个星号图

2.打一张九九乘法表(for(;;;)打成,导致了编译错误;\n不是/n是右上角的那个向右边偏)

3.break语句

使用break语句时注意以下几点:

1、在没有循环结构的情况下,break不能用在单独的if-else语句中

2、在多层循环中,一个break语句只跳出当前循环

找出1-50内所有的素数

思路 两层循环  被除数 和除数  若在(2,自己)开区间间有除数就break  不继续后面的循环了  其实也可以不用break 设个标志位表示有这样的除数存在  但是重点不是有几个 而是有没有 所以只要有就跳出循环  这样可以提高效率

#include <stdio.h>
int main()
{
    int m, n;
    for(m=2; m<=50; m++)
    {
for(n=2; n<m; n++)
        {
            if( m%n==0   )       //什么条件下跳出当前循环
              break;           //这里应该退出当前循环了
}
        if(m == n)   //n循环结束后,如果m=n的话就输出m
            printf("%d  ", m);
}
return 0;    
}

4.continue 语句

continue语句的作用是结束本次循环开始执行下一次循环break语句与continue语句的区别是:break是跳出当前整个循环,continue结束本次循环开始下一次循环。 


求不能被3整除的数字之和,这样用continue可以很方便把不需要的循环剔除。如果不用,也可以if(i%3==0  sum不加 若!=0 sum 再加  这样就多了一个 if判断  麻烦)

#include <stdio.h>
int main()
{
    int i, sum;
    for(i=1, sum=0; i<=20; i++)
    {
        if( i%3==0 )    //能被3整除这个条件如何写呢?
        {
            continue;          //应该用哪个循环结束语句呢?
        }                  
        sum += i;
    }
    printf("sum=%d\n", sum);
    return 0;    
}


5.break语句

在使用switch语句时还应注意以下几点:

1、在case后的各常量表达式的值不能相同,否则会出现错误。

2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。


这前两个后面没有;所以运行结果是 好好休息


#include <stdio.h>
int main() 
{
    int score = 87; //考试分数为87分 
    score=score/10;
    
    switch(score)
    {
        /*想想以下代码为什么用这种方式;
          这种方式的好处?*/
        case 10:
        case 9:
            printf("等级A");
            break;
        case 8:
            printf("等级B");
             break;               //            
        case 7:
        case 6: 
            printf("等级C");
                 break;           //

       default://表示不是以上的那些选项
            printf("等级D");
            break;    
    }
    return 0;
}


6.

计算8月8日是第几天

判断闰年:if(year%4==0)&&(year%100!=0)||(year%400==0))
注意  switch 不要拼错  continue只能用在循环体中  break只可以用在循环体和开关中

以下这样写结果正确 但是感觉很傻。。。

#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
/*
* 请使用switch语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/

int Feb;
int monthday;
int days;
if (year % 4 == 0)
{
Feb = 29;
}
else
Feb = 28;
switch(month - 1)
{
        case 0:
monthday = 0;
break;
case 1:
monthday = 31;
break;
case 2:
monthday = Feb + 31;
break;
case 3:
monthday = 31 + Feb + 31;
break;
case 4:
monthday = 31 + Feb + 31 + 30;
break;
case 5:
monthday = 31 + Feb + 31 + 30 + 31;
break;
case 6:
monthday = 31 + Feb + 31 + 30 + 31 + 30;
break;
case 7:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31;
break;
case 8:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31;
break;
case 9:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31 + 30;
break;
case 10:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
break;
case 11:
monthday = 31 + Feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
break;
}//也可以先算平年的 然后再判断是否是闰年  若是 且 month>2  则+1即可
days = monthday + day;
printf("2008年8月8日是该年的第%d天", days);//这里不对  应该是 %d年%d月%d日
return 0;
}


7.goto语句

 goto 语句标号;

其中语句标号是一个标识符,该标识符一般用英文大写并遵守标识符命名规则,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在特定情况下,可以使用goto语句来提高程序的执行速度,所以还是少用为妙。

例如:


#include <stdio.h>
int main()
{
    int sum = 0;
    int i;
    for(i=1; i<=10; i++)
    {
        printf("%d\n", i);
         if(i==3)                   //是不是少了一个判断呢?
        goto loop;                    //在这里使用goto语句
    }
   loop: printf("结束for循环了....");  //请选择合适位置添加标识符
    return 0;    
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值