C#初学者每日分享,每步都算数。(3)

关键字  static

在C语言中,static是用来修饰变量和函数的:

^修饰局部变量——称为局部静态变量

^修饰全部变量——称为全部静态变量

^修饰函数——称为静态函数

修饰局部变量

加上static⬇️

没有static⬇️

satic修饰局部变量的时候,局部变量出了作用域,所得的值被保存,不会销毁。

本质上,改变了变量的存储位置【栈区(局部变量)➡️静态去(局部变量)】。

影响了变量的生命周期,生命周期变得和程序的生命周期一样。

修饰全局变量

static修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性。其他源文件就不能使用这个全局变量。(函数也是如此)

控制语句

^条件判断语句也叫分支语句:if语句 , switch语句 ;

^循环执行语句:do while语句 , while语句 ,for语句 ;

^转向语句:break语句 , goto语句 , continue语句 , return语句 ; 

if语句

if(条件表达式)

      {   //条件为真(非0)执行代码块,假(0)跳过

              满足条件是执行的语句;

      }

#include <stdio.h>  // 包含输入输出函数库

int main() {
    // 1. 定义变量存储成绩
    int score;
    
    // 2. 提示用户输入成绩
    printf("请输入你的考试成绩(0-100):");
    scanf("%d", &score);  // 读取用户输入的整数成绩
    
    // 3. 数据合法性校验(避免输入超出0-100的无效值)
    if (score < 0 || score > 100) {
        printf("输入错误!成绩需在0-100之间\n");
    } 
    // 4. 多分支条件判断评级
    else if (score >= 90) {
        printf("你的成绩等级:优秀\n");
        printf("评语:表现出色,继续保持!\n");
    } 
    else if (score >= 80) {
        printf("你的成绩等级:良好\n");
        printf("评语:表现不错,仍有提升空间~\n");
    } 
    else if (score >= 60) {
        printf("你的成绩等级:及格\n");
        printf("评语:顺利通过,下次争取更好!\n");
    } 
    else {
        printf("你的成绩等级:不及格\n");
        printf("评语:需要加倍努力,查漏补缺哦!\n");
    }
    
    return 0;  // 程序正常结束
}

注: if 后无 {} 时,仅执行紧跟的第一句代码,建议始终加 {} 避免逻辑错误。

swith语句

sitch(整型表达式)

    {   

          case 整型常量表达式:

                  语句;

    }

#include <stdio.h>

int main() {
    int score;
    printf("请输入成绩(0-100):");
    scanf("%d", &score);

    // 先校验输入合法性
    if (score < 0 || score > 100) {
        printf("输入错误!成绩需在0-100之间\n");
        return 0; // 直接结束程序
    }

    // 核心:将成绩分组(10个case对应10个分数段)
    switch (score / 10) { // 整除10,把0-100映射为0-10
        case 10: // 100分
        case 9:  // 90-99分
            printf("成绩等级:优秀\n评语:表现出色,继续保持!\n");
            break; // 跳出switch,避免执行后续case
        case 8: // 80-89分
            printf("成绩等级:良好\n评语:表现不错,仍有提升空间~\n");
            break;
        case 7: // 70-79分
        case 6: // 60-69分
            printf("成绩等级:及格\n评语:顺利通过,下次争取更好!\n");
            break;
        case 5: // 0-59分(case 0-5合并)
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:
            printf("成绩等级:不及格\n评语:需要加倍努力,查漏补缺哦!\n");
            break;
    }

    return 0;
}

注:

1.  switch(表达式) :表达式必须是整数类型(int、char等,不能是float);

2.  case 常量 :常量必须是字面量(如10、'A')或宏定义,不能是变量;

3.  break :必须加!否则会“穿透”到下一个case(比如case10没break会执行case9的代码);

4.  default (可选):所有case都不匹配时执行,类似else,可放任意位置(建议放最后)。

do  while语句

do while 语句是先执行再盘判断的循环语句,核心是至少执行1次循环体,满足条件再重复,适合必须先做一次的场景。

#include <stdio.h>

int main() {
    int score;

    // 核心:先执行输入,再判断是否合法,不合法则重复
    do {
        printf("请输入成绩(0-100):");
        scanf("%d", &score);

        // 输入不合法时提示错误
        if (score < 0 || score > 100) {
            printf("输入错误!请重新输入\n");
        }
    } while (score < 0 || score > 100); // 条件为真(输入无效)则继续循环

    // 成绩评级(复用之前的switch逻辑)
    switch (score / 10) {
        case 10: case 9: printf("优秀!表现出色~\n"); break;
        case 8: printf("良好!继续加油~\n"); break;
        case 7: case 6: printf("及格!顺利通过~\n"); break;
        default: printf("不及格!需要努力哦~\n"); break;
    }

    return 0;
}

注:

1. 结构: do { 循环体 } while (条件); ,末尾必须加分号;

2. 逻辑:循环体至少执行1次,条件为真(非0)时重复;

3. 对比 while : while 是“先判断后执行”,可能一次都不执行。

for 语句

for(表达式1;表达式2;表达式3)

    {    

        循环语句;

    }

表达式1:为初始化部分,用于初始化循环变量的。

表达式2:为条件判断部分,用于判断循环时侯终止。

表达式3:为调整部分,用于循环条件的调整。

#include <stdio.h>

int main() {
    // 计算1到100的总和(固定次数循环)
    int sum = 0;
    for (int i = 1; i <= 100; i++) { // 初始化i=1;i≤100时循环;每次i+1
        sum += i; // 等价于 sum = sum + i
    }
    printf("1到100的总和:%d\n", sum); // 输出:5050

break语句和continue的区别

break是用于永久的终止循环。

continue是跳过本次循环后面的代码,直接去判断下部分,进行下一次循环的判断。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值