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

01.C语言学习(控制结构)

2021-04-10 22:21 1271 查看
//选择结构:判断奇数
int main()
{
    int num;
    printf("请输入:");
    scanf("%d", &num);
    
    if (num % 2 != 0)
        printf("%d是奇数\n", num);
    else
        printf("%d不是奇数\n",num);
    return 0;

}

//输出100内的奇数
int main()
{
    int i=1;
    while (i <= 100)
    {
        if(i%2!=0)
          printf("%d  ",i);
        i++;
    }
    return 0;
}

//else总是和它相邻最近的if匹配

int main()
{
    int a = 6;
    if (5 == a)
        if (a > 10)
            printf("Test00\n");
        else   //0
            printf("Test11\n");
    else  //1   //如果注释这里的else1则else0和它最近的if匹配
        printf("Test22");
}

//if,if...else,if...else if,switch选择语句

//if测试
int main()
{
    char ch = 'a';//ACSII码值97
    if (ch == 97)
        printf("Yes\n");

}

int main()
{
    char ch = 'a'; //ACSII码值97
    if (ch == 98)
        printf("Yes\n");
    else
        printf("No\n");

}

//if。。。else测试

int main()
{
    int day;
    printf("Please enter the day:");
    scanf("%d",&day);
    if (day == 1)
        printf("Monday!\n");
    else if (day == 2)
        printf("Tuesday!\n");
    else if (day == 3)
        printf("Wednesday!\n");
    else if (day == 4)
        printf("Thuresday!\n");
    else if (day == 5)
        printf("Friday!\n");
    else if (day == 6)
        printf("Saturday!\n");
    else if (day == 7)
        printf("Sunday!\n");

}

//switch测试
int main()
{
    int days;
    scanf("%d",&days);
    switch (days)
    {
        case 1:
            printf("Monday!\n");
            break;     //break是结束语句,跳出程序的出口,如果没有会从case1执行到defualt,也就是会打印全部的天数和defualt的内容
        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("Enter Errors,Please enter again!");
            break;
        
    }
}
//建议每个switch都匹配一个defualt分支
//default是没有匹配的情况才会执行,每个switch语句只能有一个default,其可以出现在语句列表的任何位置
int main()
{
    int days;
    scanf("%d", &days);
    switch (days)
    {
    case 1:
        printf("Monday!\n");
    case 2:
        printf("Tuesday!\n");
    case 3:
        printf("Wednesday!\n");
    case 4:
        printf("Thursday!\n");
    case 5:
        printf("Friday!\n");
    case 6:
        printf("Saturday!\n");
    case 7:
        printf("Sunday!\n");
    default:
        printf("Enter Errors,Please enter again!\n");
    }
}

运行结果:
/****************************************************************/
1
Monday!
Tuesday!
Wednesday!
Thursday!
Friday!
Saturday!
Sunday!
Enter Errors, Please enter again!
请按任意键继续. . .
/***************************************************************/

//以下是多个case分支共用一个打印语句
int main()
{
    int num;
    scanf("%d",&num);
    switch (num)
    {
    case 0:
    case 1:
        printf("Test--->0"); break;
    case 3:
    case 4:
        printf("Test--->1"); break;
        
    default:
        printf("Test--->none");
        break;
    }
}

int main()
{
    int n = 1;
    int m = 2;
    switch (n) 
    {
    case 1:++m;
    case 2:n++;
    case 3:
        switch (m)   //m=3,无匹配结果
        {
        case 1:n++;
        case 2:m++; n++; break;
        
        }
    case 4:m++;
        break;
    default:
        break;
    }
    printf("n=%d,m=%d\n",n,m);
}

/*************************************
break和continue
break:直接结束循环
continue :结束本次循环,直接接入下一次循环
**************************************/

int main()
{
    int i = 1;
    while (i<=10)
    {
        if (i == 5)
            break;   //此时i=5,结束循环,不再打印5出来
        printf("%d  ",i);
        i++;
    }
}

int main()
{
    int i = 1;
    while (i <= 10)
    {
        i++; //只有放在前面时程序才可以正常执行,得到想要的结果
        if (i == 5)
            continue; //直接进入下一趟循环
            
        printf("%d  ", i);
        //i++;   放在这里没有办法执行,因为当i=5时,直接进入到下一趟循环,不会执行到i++这里,也就是i的值没有改变的机会,可能程序会进入死循环了
    }
}

运行结果:
2 3 4 6 7 8 9 10 11 

//连续输入
int main()
{
    //CTRL+Z结束
    char ch;
    while ((ch = getchar()) != EOF) //EOF -->end of file 文件结束标志
    {
        putchar(ch);
    }
}

//实例:输入密码,等待确认,确认成功!
int main()
{
    int ch = 0;
    int ret = 0;
    char password[] = { 0 };
    printf("请输入密码:>");
    scanf("%s",password);
    //如果不加下面的while,当输入空格时,没等到Y确认就直接输出Fail
    /*  while ((ch = getchar()) != '\n')
    {
        ;
    }   */
    printf("请确认(Y/N):>");
    ret = getchar();
    if (ret == 'Y')
        printf("OK!\n");
    else
        printf("Fail\n");
}
//循环Test示例
int main()
{
    int ch=0;
    while ((ch=getchar()) != EOF)
    {
        if (ch < '0' || ch > '9')
            continue;
        putchar(ch);
    }
}


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