C语言——分支语句和循环语句(循环语句)

我们在C语言中,常见的循环语句有  while循环语句, for循环语句, do while循环语句。

1.1while循环语句

while(判断表达式)                (表达式为真则循环执行)

        循环语句;

举例:在屏幕上打印1-10的数字

#include <stdio.h>
int main ()
{
	int i = 1;
	while (i <= 10)
	{
		printf("%d ",i);
		i++; 
	}
	return 0;
}

 1.2:while语句中的breakcontinue

break

#include <stdio.h>
int main ()
{
	int i = 1;
	while (i <= 10)
	{
        if(i==5)
        break;
		printf("%d ",i);
		i++; 
	}
	return 0;
}

在这里输出的结果就是:

1234

因此,我们可以得到while中的break是用于永久终止循环的。

continue

int main()
{
     int i = 1;
     while(i<=10)
     {
         if(i == 5)
           continue;
     printf("%d ", i);
     i = i+1;
     }
 return 0;
}

在这里输出的结果就是

1 2 3 4 6 7 8 9 10

因此我们可以得到,continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

总结:

break:while中的break是用于永久终止循环的

continue:continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断

2.1   for循环

 我们可以看到,while循环语句中有初始化,判断部分,调整部分。

因此在for循环中。for循环则是将这三个放在一起。

for(初始化; 判断部分;调整部分)

循环语句;

因此将上述代码,用for循环表示则是:

#include <stdio.h>
int main ()
{
    int i = 0;
    for (i=1;i<=10;i++)
    {
        printf("%d",i)
    }
return 0;
}

比较两个循环我们可以得知for循环的风格更胜一筹;for循环使用的频率也最高。

2.2breakcontinuefor循环中

for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。

但是还是有些差异:for循环里的continue,执行完会完全跳至循环的调整部分

                            while循环里的continue,执行完会将整个循环的调整部分跳过去

3.1  do...while循环

循环至少执行一次,使用的场景有限,所以不是经常使用

do

        循环语句;

while(表达式);
 

#include <stdio.h>
int main()
{
     int i = 10;
     do
     {
         printf("%d\n", i);
     }while(i<10);
     return 0;
}

3.2do while循环中的breakcontinue


//break
#include <stdio.h>
int main()
{
 int i = 10;
    
     do
     {
        if(5 == i)
            break;
     printf("%d\n", i);
     }while(i<10);
    
     return 0;
}


//continue
#include <stdio.h>
int main()
{
 int i = 10;
    
 do
 {
        if(5 == i)
            continue;
 printf("%d\n", i);
 }while(i<10);
    
 return 0;
}

结论:do while循环中的breakcontinue       和while的一样。

4.1goto语句

C 语言中提供了可以随意滥用的 goto 语句和标记跳转的标号。
从理论上 goto 语句是没有必要的,实践中没有 goto 语句也可以很容易的写出代码。
#include <stdio.h>
int main()
{
    flag:
        printf("hehe\n");
        printf("hehe\n");
    goto flag;
    return 0;
}

5.1补充一个知识点(getchar)

getchar(读取一个字符)                返回值是一个int类型

EOF(end of file)文件结束的标志(-1)

putchar()输出一个字符

读取的原则就是:getchar并不是直接从键盘上获取字符,而是在缓冲区获取字符。

看代码:

#include <stdio.h>
int main ()
{
	int ch = 0 ;
	while ((ch=getchar()) != EOF)
	{
		putchar(ch);
	}
	return 0;
}

在这里我们输入A回车,返回A.....

那么getchar在我们平时的时候有什么用处呢?

接下来给大家来实现:

 原因在这里:

 因此在这样的情况下,我们就需要清除缓冲区的“\n”。

我们只需要在printf("请确认密码(Y或N):") 这一行的代码后面加上getchar()用来清除缓冲区的\n

那么问题又来了,如果说是在输入密码的时候我们会有空格等等其他的字符,这个时候总不能一个一个的字符清楚吧!

接下来看代码:

#include <stdio.h>
int main ()
{
	char password[20] = {0}; 
	printf("请输入密码:");
	scanf("%s",password);
	printf("请确认密码(Y或N):");
	//清理缓冲区
	//getchar()
	//清理缓冲区的内容(多个字符)
	int tmp = 0;
	while((tmp = getchar()) != '\n')
	{
		;//空字符 
	 } 
	 int ch=getchar() ;
	if(ch = 'Y') 
	{
		printf("确认成功");
	}
	else
	{
		printf("确认失败");
	 } 
	 return 0; 
	
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LJ小番茄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值