零基础自学程序设计入门—C语言 第三周

1.if语句根据条件选择做与不做

#include <stdio.h>
int main()
{
    int hour1, minute1;
    int hour2, minute2;

    scanf("%d %d", &hour1, &minute1);
    scanf("%d %d", &hour2, &minute2);

    int ih = hour2 - hour1;
    int im = minute2 - minute1;
    if ( im <0 ) {
        im = 60 + im;
        ih --;
    }
    
    printf("时间差是%d小时%d分。\n", ih, im);
    
    return 0;
}

2.判断的条件:关系运算

C语言提供了六个关系运算符:

  • == 相等

  • != 不相等

  • > 大于

  • >= 大于或等于

  • < 小于

  • <= 小于或等于

3.判断,注释,流程图

善用注释和流程图能很好的帮助人们看懂代码。

4.否则的话:如果条件不成立呢?

如果if语句后面的括号后面没有大括号,当条件满足时,只执行if语句后一句的代码。

:/* */是注释,编译器不管其中的内容。但是有没有想过编译器会把它替换成什么呢?是一个空格?还是不留痕迹?可以写代码来测试你用的编译器吗?

答:在把代码翻译成汇编代码前,还有一个步骤叫预处理。在预处理当中会把注释代码删掉。一条语句前的注释 替换成等长的空格;一条语句中的注释 替换成一个空格;一条语句后的注释 直接删除

5.循环

if语句可以判断条件是否满足,满足时才做相应的动作,而循环语句可以在满足条件时,不断地重复执行一些动作。

重复执行的语句(循环语句)可以多次执行其他语句,它检查一个逻辑条件是否满足,只在满足的时候执行它的循环体。

while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。

do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。

例:数几位数

#include <stdio.h>
int main()
{
    int number = 0;
    int count = 0;
    printf("请输入数字:");
    scanf_s("%d", &number);
    count++;
    number /= 10;
    while (number > 0) {
        count++;
        number /= 10;
    }
    printf("一共有%d位数", count);
    return 0;
}

:用课程中的那个数数的位数的程序,你能数到多大的数?

答:10位数

要经常去对代码进行验证:尤其是特殊数据。

对代码进行调试可以使用printf来进行检查。

6.do-while循环

do-while语句改善

#include <stdio.h>
int main()
{
    int number = 0;
    int count = 0;
    printf("请输入数字:");
    scanf_s("%d", &number);
    do {
        count++;
        number /= 10;
    } while (number > 0);
    printf("一共有%d位数", count);
    return 0;
}

7.for循环

例:算阶层

#include <stdio.h>
int main()
{
    int number = 0;
    int x = 1;
    printf("请输入数字:");
    scanf_s("%d", &number);
    int y = number;
    for (number = number; number > 1; number--) {
        x *= number;
    }
    printf("%d!=%d", y, x);
    return 0;
}

:为什么老师说for循环很怪?

for循环是高级语言出现的第一种循环,它和现代的程序设计理念是否存在差距?为什么Python语言就没有C语言这种形式的for循环了?

:因为for循环不符合人类的语言逻辑,并不易于理解,因此就造成了第一次接触语言的人难以理解for循环所表达的意思。而现代程序设计理念更强调与人类语言的逻辑统一性而非编译逻辑。因此在新兴的python语言中去除了C中的for循环逻辑。C 的整体设计过于面向机器指令,C 风格的 for 语句,在面对应用开发时,细节过多,抽象不足,部分场景下易出错,易导致开发成本上升,易导致可读性差。对于精心设计的、带有抽象设计的 for 语句(包括 foreach 等),可以满足几乎所有 C 语言 for 语句的功能,并且有更好的体验、更好的可读性、更少的出错机会,甚至促使我们写出更好的性能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值