C语言分支和循环

/*分支和循环*/
/*
分支语句:
if switch
循环语句:
while    for    do while   goto

由一条分号隔开的就是一条语句。 
一个分号也是一条语句,只不过是一条空语句。 
*/ 

/*if语句*/
//#include<stdio.h>
//int main()
//{
//    int age = 20;
//    if(age < 18) //单分支if 
//        printf("未成年\n");
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int age = 20;
//    if(age < 18)
//        printf("未成年\n");
//    else
//        printf("已成年\n");
//    return 0;
//} 

//#include<stdio.h>
//int main()
//{
//    int age = 10;
//    if(age < 18)
//        printf("未成年\n");
//    else if(age>=18 && age<28)
//        printf("青年\n");
//    else if(age>=28 && age<50) 
//        printf("壮年\n");
//    else if(age>=50 && age<90)
//        printf("老年\n");
//    else
//        printf("老不死\n");
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int age = 100;
//    if(age < 18)
//        printf("未成年\n");
//    else 
//    {
//        if(age>=18 && age<28)
//        printf("青年\n");
//    else if(age>=28 && age<50) 
//        printf("壮年\n");
//    else if(age>=50 && age<90)
//        printf("老年\n");
//    else
//        printf("老不死\n");
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int age = 100;
//    if(age < 18)
//    {
//            printf("未成年\n");
//            printf("不能谈恋爱\n");
//    } // 这里一对大括号就是一个代码块 
//    else 
//    {
//        if(age>=18 && age<28)
//        printf("青年\n");
//    else if(age>=28 && age<50) 
//        printf("壮年\n");
//    else if(age>=50 && age<90)
//        printf("老年\n");
//    else
//        printf("老不死\n");
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int a = 0;
//    int b = 2;
//    if(a == 1) //因为第一个if执行不成功且没有else与其匹配,所以第二个if无法执行,什么都打印不出来 
//        if (b == 2)
//            printf("hehe\n");
//        else //这里的else与第二个if匹配。else与离它最近的if匹配 
//            printf("haha\n");
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int a = 1;
//    int b = 2;
//    if(a == 1)
//    {
//        if (b == 3)
//            printf("hehe\n");
//        else
//            printf("haha\n");
//    }
//    else
//    printf("hhh\n");
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int num = 4;
//    if (num = 5) //这里的 “=”是赋值而不是判断相等。一定要用两个等号 
//    {
//        printf("hehe\n");
//    }
//    return 0;
//} 

//#include<stdio.h> //打印1到100之间的基数 
//int main()
//{
//    int a = 0;
//    int b = 2;
//    while (a<=100)
//    {
//        if(a%b == 1)
//           printf("%d\n", a);
//           a++;
//    }
//    return 0;
//}

//#include<stdio.h> //打印1到100之间的基数 
//int main()
//{
//    int i = 1;
//    while (i<=100)
//    {
//        printf("%d\n", i);
//        i += 2;
//    }
//    return 0;
//}


/*多分支情况用swit语句*/
//switch定义的类型必须是整形,不能是浮点形 
//#include<stdio.h>
//int main()
//{
//    int day = 0;
//    scanf("%d", &day);
//    switch(day)
//    {
//        case 1 + 0:  //case后面必须是整形常量表达式 
//            printf("星期1\n");
//            break; //跳出switch循环
//        case 2:
//            printf("星期2\n");
//            break;
//        case 1 + 2:
//            printf("星期3\n");
//            break;
//        case 4:
//            printf("星期4\n");
//            break;
//        case 5:
//            printf("星期5\n");
//            break;
//        case 6:
//            printf("星期6\n");
//            break;
//        case 7:
//            printf("星期天\n");
//            break;
//    }
//    return 0;
//} 

//#include<stdio.h>
//int main()
//{
//    int day = 0;
//    int n = 1;
//    scanf("%d", &day); //scanf取地址的时候,%d后面不能有"\n"或者空格之类的东西 
//    switch(day)
//    {
//        case 1+0: //case后面一定要用冒号 
//        case 1+1:
//        case 3:
//        case 4:
//        case 5:
//            if (n == 1 || 2 || 3 || 4 || 5)
//                printf("hehe\n"); 
//            printf("工作日\n");
//            break;
//        case 6:
//        case 7:
//            if (n == 6 || 7)
//                printf("haha\n");
//            printf("休息日\n");
//            break;
//        default:                 //default的意思是如果上面的情况都无法执行,则执行default情况 
//            printf("输入错误\n");
//            break; 
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int n = 1;
//    int m = 2;
//    switch(n)
//    {
//        case 1:
//            m++;
//        case 2:
//            n++;
//        case 3:
//            switch(n)
//            {
//                case 1: //在上面的case2执行过后n的值就变为了2,所以说,嵌套的switch语句中case 1(在n=1的时候执行)就不再执行,直接执行case2的情况 
//                    n++;
//                case 2:
//                    m++;
//                    n++;
//                    break;
//            }
//        case 4:
//            m++;
//            break;
//        default:
//            break;
//    }
//    printf("m = %d, n = %d\n", m, n);
//    return 0;
//} 


//#include<stdio.h>
//int main()
//{
//    int i = 1;
//    while(i<=10)
//    {
//        if(i == 5)
//            break;
//        printf("%d ", i);
//        i++;
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int i = 1;
//    while(i<=10)
//    {
//        if(i == 5)
//            continue;  //continue :跳过本次循环的代码继续从头开始执行循环 
//        printf("%d ", i);//程序进入死循环。当i等于5的时候继续跳到上面的while进行判断,判断之后继续往进行。当再次进行至i等于5的时候又跳到上面的while。
//        i++;
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int i = 1;
//    while(i<=10)
//    {
//        i++;
//        if(i == 5)
//            continue;  //continue :是用于终止本次循环的,也就是本次循环中出continue后面的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断 
//        printf("%d ", i);//程序进入死循环。当i等于5的时候继续跳到上面的while进行判断,判断之后继续往进行。当再次进行至i等于5的时候又跳到上面的while。
//    }
//    return 0;
//}


//#include<stdio.h>
//int main()
//{
//    int ch = getchar();
//    putchar(ch);
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int ch = 0;
//    //ctrl + z
//    //EOF --> -1
//    while((ch = getchar()) !=EOF)
//    {
//        putchar(ch);
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int ch = 0;
//    int ret = 0;
//    char password[20] = {0};
//    printf("请输入密码:>");
//    scanf("%s", password);   //scaf用来接收用户输入的数据。输入密码并存放在password数组中 
//    //当输入完密码之后会按一下“\n”,那么这时缓冲区还剩一个“\n”没有被scanf读取走 
//    //将“\n”读取走
//    while((ch = getchar()) !='\n')  //将剩下的“\n”读取走
//    {
//    };
//    printf("请确认(Y/X):>");
//    ret = getchar();
//    if(ret == 'Y')
//    {
//        printf("确认成功");
//    }
//    else
//    {
//        printf("放弃确认");
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int ch = 0;
//    while((ch = getchar()) !=EOF)
//    {
//        if (ch<'0' || ch>'9') //0在ASCII表中的值是48,9在ASCII表中的数值是57.所以说非数字字符执行continue 
//            continue;
//        putchar(ch);
//    }
//    return 0;
//}


/*for(初始化部分; 条件判断部分; 变量调整部分)*/
//#include<stdio.h>
//int main()
//{
//    int i = 0;
//    for(i = 1; i <= 10; i++)
//    {
//        if(i == 5)
//          continue; 
//        printf("%d\n", i);
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int i = 1;
//    while(i<=10)
//    {
//        i++;
//        if(i == 5)
//           continue;
//        printf("%d\n", i);
//    }
//    return 0; 
//}

//#include<stdio.h>
//int main()
//{
//    char ch[10] = {1,2,3,4,5,6,7,8,9,10};
//    int i = 0;
//    //for循环尽量用开区间。因为这样区间后的数字具有某种意义 
//    // 10次循环,10次打印,10个元素 
//    for(i = 0; i<10; i++)
//    {
//        printf("%d\n", ch[i]);
//    }
//    return 0;
//    }    

//#include<stdio.h>
//int main()
//{
//    int i = 0;
//    int j = 0;
//    for(i = 0; i<10; i++)
//    {
//        for(j = 0; j<10; j++)
//        printf("hehe\n");
//        //会打印100个呵呵
//        //i = 1的时候,j循环10次跳出for循环,i = 2的时候j又循环10次 
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int x, y;
//    for(x = 0, y = 0; x<2 && y<5; ++x, ++y)
//    {
//        printf("hehe\n");
//    }
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int i = 0;
//    int k = 0;
//    for (i = 0, k = 0; k == 0; k++, i++)
//    k++;
//    printf("%d\t%d\n", i, k);
//    return 0;
//}


/*do while循环先循环再判断。do后面跟的是循环语句,while后面括号里加的是判断语句*/
//#include<stdio.h>
//int main()
//{
//    //打印1到10的数字
//    int i = 1;
//    do
//    {
//        printf("%d\n", i);
//        i++;
//    }
//    while(i<=10);   
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int i = 0;
//    do
//    {
//        i++;
//        if(i == 5)
//            continue;
//        printf("%d\n", i);
//    }
//    while(i < 10);   
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    int i = 1;
//    do
//    {
//        if(i == 5)
//            continue;
//        printf("%d\n", i);
//        i++;
//    }
//    while(i<=10);   
//    return 0;
//}

/*goto语句*/
//#include<stdio.h>
//int main()
//{
//again:
//    printf("Hllo world!\n");
//    goto again;
//    return 0;
//}

//#include<stdio.h>
//int main()
//{
//    printf("Hello world!\n");
//    goto again;
//    printf("Hi\n");
//again:
//    printf("Hello\n");
//    return 0;
//}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值