C语言中关于while语句的理解以及getchar和putchar

发布时间:2023年12月29日

?while是一个循环语句,关于while的一些理解可以看下面这串代码

#include <stdio.h>
int main() {
    int i = 0;
    scanf("%d", &i);
    printf("输入十以内的数字,从输入的数字开始一直数到十:");
    while (i<=10)
    {
        printf("%d ",i);
        i++;
    }
    return 0;
}
例如我们输入一个7
i=77<=10成立,输出7,i+1变成8
i=88<=10成立,输出8,i+1变成9
i=99<=10成立,输出9,i+1变成10
i=1010<=10成立,输出10,i+1变成11
i=11,i<=10不成立,跳出while循环

这就是while语句基本的运行方式


?在此基础上,我们来改进一下这个语句,现在我们想让它运行到9的时候就跳出去该怎么办呢?


    while (i <= 10)
    {
        if(i == 9)
            break;
        printf("%d ",i);
        i++;
    }

我们可以在while里面加上一个if(i==9)break;的条件,加上之后当i=9时再运行就会因为if中的条件直接跳出循环,所以可以看见,这串代码在输出的时候是没有输出9的,因为9还没来得及输出,循环就直接被跳出去了。


我们再次改进这条语句,我们现在要在输入跳过7,然后继续输出后面的数应该怎么办呢?

这个时候就需要用到一条新的语句了:continue?

continue:跳过本次continue循环后面的代码,重新去判断部分(也就是重新进入while循环),看是否能够进行下一次循环

while (i < 10)
    {
        i++;
        if(i == 9)
            continue;
        printf("%d ",i);
    }

?这串代码与上一次相比,我们把while中的条件改为了i<10而非i<=10,然后还把i++提前了

值得注意的是,如果我们这里不把i++提前而是继续放到printf后面,那么在i=9时,continue直接跳过i++然后回到while当中,这就会导致i一直等于9,造成死循环


?那么我们再来看一个while语句

看之前先介绍一下getchar和putchar还有EOF

getchar:获取一个字符

putchar:输出一个字符

EOF:文件结束标志

#include <stdio.h>
int main() {
    int i ;
    while ((i=getchar()) != EOF)    //如果i一个输出的字符且这个输出的字符不等于EOF
        putchar(i);                 //就输出这个i
    return 0;
}

因为我们要先判断i=getchar(),所以我们要用括号把i=getchar()括起来

这段代码的作用是你输入一个字符进去,系统就会返回这个字符给你,可以不断的去读取一个字符

如果我们要结束这个程序,就用ctrl+z就行了,ctrl+z的功能就是让getchar读取到一个EOF

文章来源:https://blog.csdn.net/lzcandhyandcg/article/details/135297236
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。