学习日记:流程控制

目录

1.关系运算符

2.逻辑运算

3.选择语句

3.1 if语句

3.1.1 条件运算( ?:)

3.2 switch语句

4.循环

4.1 goto

4.2 while

4.3 do - while

4.4 for语句

4.5 循环语句的选用

4.6 break 和 continue

补充:


1.关系运算符

>   、 <    、   ==  、  <=   、  >=   、  !=

关系表达式反映的是一种关系成立与否(0表示假,1表示真)

2.逻辑运算

&&(与):一真则真

特性:短路特性(截断特性)--- 表达式1为假时,表达式2不运算。

表达式1 && 表达式2;

||(或):一假则假

特性:短路特性(截断特性)

!(非):真假相对

3.选择语句

3.1 if语句

形式1:单分支

if(表达式)
{
    语句;
}

形式2:双分支

if(表达式)
{
    语句;
}else
{
    语句;
}

形式3:多分支

if(表达式1)
{
    语句1;
}else if(表达式2)
{
    语句2;
}else
{
    语句3;
}

eg:

输入年月,打印对应的天数。

#include<stdio.h>

int main(void)
{
    int year,month;
    int days = 0;
    printf("Input a month:");
    scanf("%d %d",&year,&month);

    if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
    {
        days = 31;
    }else if(month==4 || month==6 || month==9 || month==11)
    {
        days = 30;
    }else
    {
        if((year%4==0&&year%100!=0) || year%400==0)
        {
            days = 29;
        }else
        {
            days = 28;
        }
    }

    printf("days = %d\n",days);

    return 0;
}

运行结果:

知识点:闰年分为普通闰年和世纪闰年,普通闰年为4的倍数但不能被100整除,世纪闰年能被400整除。

3.1.1 条件运算( ?:)

表达式1 ? 表达式2 : 表达式3;

语义:判断表达式1,为真执行表达式2,为假执行表达式3.

3.2 switch语句

语法:

switch(表达式)
{
    case 常量表达式1:
        语句1;
        break;
    case 常量表达式2:
        语句2;
        break;
    case 常量表达式n:
        语句n;
        break;
    default:
        语句n+1;
        break;
}

注:

(1)switch后面的表达式必须是一个整型表达式

(2)case后面是一个整型常量表达式,不能出现变量

(3)default不一定写在最后。

4.循环

构成循环的要素:

(1)循环体

(2)结束条件

(3)使循环趋于结束的操作

(4)循环的初始条件

4.1 goto

goto语句并不是循环语句,他是跳转语句,只是刚好能实现循环。

语法:

goto 标签;

4.2 while

语法:

while(表达式)
{
    语句
}

语义:判断表达式是否为真,为真执行语句,语句执行完继续判断表达式,直到表达式为假。

4.3 do - while

语法:

do
{
    语句;
}while(表达式);

语义:

先执行语句,然后判断表达式是否为真,为真则继续执行语句,为假则结束。

eg:打印出所有的水仙花数

#include<stdio.h>

int main(void)
{
    
    int i = 100;
    int a,b,c;

    do{
        a = i/100;
        b = i%100/10;
        c = i%10;
        if(i == a*a*a+b*b*b+c*c*c)
        {
            printf("%d\n",i);
        }

        i++;

    }while(i<1000);

    return 0;
}

运行结果:

4.4 for语句

语法:

for(表达式1;表达式2;表达式3)
{
    循环体语句;
}

//也可以理解为


for(初始条件;循环结束条件;使循环趋于结束的操作)
{
    循环体语句;
}


语义:

求解表达式1,判断表达式2,表达式2为真执行循环体语句,执行完求解表达式3,求解完继续判断表达式2,重复,直到表达式2为假,for循环结束。

4.5 循环语句的选用

for          --- 多用于有一定范围的程序

while      

do while --- 多用于

4.6 break 和 continue

1.break语句

可用于·switch,循环while,do-while,for中。

作用:表示跳出本层循环。

2.continue语句

只用在循环中,作用是结束本次循环,继续下一次循环。 

补充:

素数:指除了1和它本身,没有一个数被他整除。

水仙花数:为100-999的三位数,每位数的3次方和值为该数本身(eg:153 = 1*1*1+5*5*5+3*3*3)

闰年:判断方法(年份%4==0 && 年份%100 !=0 || 年份%400==0)为闰年

闰年2月有29天,平年28天。

  • 22
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值