day3笔记分支、循环语句

垃圾字符回收
1.空格 ----可以回收一个或者多个
2.%*c -----可以回收一个字符
3.getchar()
在这里插入图片描述

【1】强制转换

int a=5;
int b=(float)a/2;—>2—>2,5000
在这里插入图片描述
隐式转换情况:
在这里插入图片描述
练习:
以下输出结果是:
int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);//1.0+0.5+2—>3.5—>3
printf(“a=%d\n”,a);
答案:3

【2】分支语句

if else:
基本结构:
if(表达式){
语句块1;
}else{
语句块2;
}
执行顺序:首先走if语句中的表达式,如果表达式成真(即满足条件)则走语句块1的位置,表达式为假(即不满足条件)走else后面的语句块2。
在这里插入图片描述
在这里插入图片描述
分层结构
if(表达式1){
语句块1;
}else if(表达式2){
语句块2;
}else if(表达式3){
语句块3;
}else{
语句块4;
}
在这里插入图片描述
练习:
某公园门票的票价是每人50元,一次购票满30张,每张可以少收2元。试编写自动计费系统程序。
输入格式:输入一个正整数,表示购票的数量。----> scanf(“%d”,&a)—>a:票数
输出格式:输出一个整数,表示用户实际需要支付的金额。---->printf(“%d”,金额)
票数>=30 50-2 ---->(50-2)*票数
在这里插入图片描述
练习:
实现大小写转换(用getchar、putchar实现)----》ascii码值 ±32
输入大写字母输出小写字母,
输入小写字母输出大写字母,
输入的不是字母,提示输入错误。----》if else if else

1、输入getchar----》返回值 变量接收返回值
2、if判断 ‘a’-‘z’ 97-122 65-90
3、输出putchar
ascii码值 ±32

练习:输入三个数,输出三个数中的最大值
switch case
基本结构:
switch(表达式或者常量){
case 常量1:语句块1 ;break;
case 常量2:语句块2;break;
case 常量2:语句块2;break;

default:语句块n;
}
例:春:3 4 5 夏:6 7 8 秋:9 10 11 冬:12 1 2
修改:
在这里插入图片描述
练习:
从终端输入一个学生的成绩,判断学生成绩,打印成绩级别
【90 - 100】 A ----》9 100
【80 - 89】 B ----》8
【70 - 79】 C -----》7
【60 - 69】 D -----》6
< 60 sorry you lost

判断输入的数除10之后的结果

【3】循环语句

在这里插入图片描述
for循环
1.基本结构:
定义一个循环变量
for(表达1;表达式2;表达式3){
语句块;(循环体)
}
表达式1:给循环变量赋初始值
表达式2:循环条件 结束循环的条件
表达式3:递增或者递减
在这里插入图片描述

练习:打印一行星星 *(20)
在这里插入图片描述
变形1:
int i=0;
for (; i < 10; i++)
{
语句块;
}
变形2:
int i=0;
for (; i < 10; )
{
语句块;
表达式3(i++)
}
变形3:
int i=0;
for (;; ) //死循环
{
if(表达式2){
语句块(循环体);
表达式3;
}else{
break;
}
}
在这里插入图片描述
嵌套结构
定义两个循环变量
for(表达1;表达式2;表达式3){
for(表达4;表达式5;表达式6){
语句块;(循环体)
}
}
例:五行五列的星星
在这里插入图片描述
特点:1.双重for循环 外层循环执行一次,内层循环就要走完全部
2.外层循环控制行数 ,内层循环控制列数
while
三个点 … 应用

#include <stdio.h>

int main() {
    int score;
    
    // 从终端输入学生成绩
    printf("请输入学生成绩:");
    scanf("%d", &score);
    
    // 判断学生成绩级别并打印
    switch (score) {
        case 90 ... 100:
            printf("成绩级别:A\n");
            break;
        case 80 ... 89:
            printf("成绩级别:B\n");
            break;
        case 70 ... 79:
            printf("成绩级别:C\n");
            break;
        case 60 ... 69:
            printf("成绩级别:D\n");
            break;
        default:
            printf("成绩级别:sorry you lost\n");
            break;
    }
    
    return 0;
}


格式:
定义一个循环变量
while(判断条件){
语句块;
递增或者递减;
}
在这里插入图片描述
do while
用于输入检测
结构:
int i;
do{
语句块;
递增或者递减的条件;
}whlie(判断条件)

例:计算1-100的和?
1+2+3+4+5+…+100=5050;
在这里插入图片描述

【4】循环控制语句

break continue
break:直接跳出整个循环(程序)
continue:跳出循环,只会跳出当前循环
使用场景:在循环语句中使用 需要判断条件
在这里插入图片描述
补充:
死循环:while(1){}; for(;;){} while(1) ;
练习:从终端上输入一个字符并在终端上输出这个字符,当输入字符为‘q’时,程序结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值