首页 > 其他分享 >循环语句(while&for)

循环语句(while&for)

时间:2022-10-04 20:03:33浏览次数:40  
标签:语句 include return int while 循环 printf main

循环语句

while 语法结构

while (表达式) 循环语句:

//continue
#include <stdio.h>


int main()
{
int i = 1;
while (i<=10)
{
if (i == 5)
continue;//继续(跳过本次循环下面的代码)
printf("%d\n", i);//1,2,3,4,6,7,8,9,10
i++;
}
return 0;
}

break再while循环中的作用: 停止后期循环中所有的循环,直接终止循环 continue介绍: 跳过本次循环下面的代码,继续执行下一次循环

getchar -- 获取键盘输入的字符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
//int ch = getchar();//getchar输入字符
//putchar(ch);//putchar输出字符
int ch = 0;
//ctrl + z会获取EOF 结束 --> -1
while ((ch = getchar()) != EOF)//EOF = end of file结束文件
{
putchar(ch);
}
return 0;
}

缓冲区

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
int ret = 0;
int ch = 0;
char password[20] = { 0 };
printf("请输入密码:");
scanf("%s", password);//键盘输入密码,并存放在password数组中
//缓冲区还剩余个'\n'
//读取一下\n
//getchar();
while ((ch = getchar()) != '\n')//清空缓冲区中的数据
{
;
}
printf("请确认(Y/N)");
ret = getchar();
if (ret == 'Y')
{
printf("确认");
}
else
{
printf("放弃");
}
return 0;
}

代码2

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch>'9')//只会输出数字字符,其他字符不会输出
continue;
putchar(ch);
}

return 0;
}

for循环(重要)

语法:for(表达式1;表达式2;表达式3) { 循环语句; }

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

#include <stdio.h>

int main()
{
for (int i = 1; i <= 10; i++)
{
printf("%d\n", i);
}
return 0;
}

建议: 1.不可在for循环体内修改循环变量,防止for循环失去控制 2.建议for语句的循环控制变量的取值采用“前闭后开区间”写法

for循环的变种

变种1

for循环的初始化,调整,判断都可以省略 但是: for循环的判断部分如果被省略,则判断条件恒为真 如果不是非常熟练,建议大家不要随便省略

#include <stdio.h>

int main()
{
for (;;)
{
printf("hehe\n");
}
return 0;
}

变种2

#include <stdio.h>

int main()
{
int x, y;
for (x = 0, y = 10; x < 2 && y>5; ++x, y++)
{
printf("hehe\n");
}
return 0;
}

do...while循环

语法: do 循环语句: while(表达式);

int main()
{
//1-10
int i = 1;
do
{
printf("%d\n", i);
i++;
}
while (i <= 10);
return 0;
}

\

练习 1. n的阶乘

int main()
{
//n的阶乘
int j = 1;
int n = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
j = j *i;
}
printf("%d\n", j);
return 0;
}
  1. 3的阶乘的和
#include <stdio.h>

int main()
{
int n = 0;
int ret = 1;
int sum = 0;
for (n=1;n<=3;n++)
{
ret = ret * n;
sum = sum + ret;
}
printf("sum = %d\n", sum);
return 0;
}

例题:二分查找

#include <stdio.h>

int main()
{

int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//创建一个数组
int k = 7;//确定要查找的元素
int sz = sizeof(arr) / sizeof(arr[0]);//计算元素个数
int left = 0;//数组左下标
int right = sz - 1;//数组右下标
while (left<=right)
{
int mid = (left + right) / 2;//二分查找法,查找中间元素进行比较
if (arr[mid] > k)//
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
printf("找到了,下标是:%d\n", mid);
break;
}
}
if (left > right)
{
printf("找不到\n");
}
return 0;
}

练习习题

#include <stdio.h>
#include <string.h>
#include <windows.h>//引入Sleep函数的头文件
#include <stdlib.h>//引入system函数的头文件
int main()
{
//welcome to bit!!!!!
//w#################!
//we###############!!
// ...
//###################
char arr1[] = "welcome to bit!!!!!" ;//{welcome to bit!!!!!\0}
char arr2[] = "###################" ;
int left = 0;
//int right = sizeof(arr1) / sizeof(arr1[0]) - 2;//计算数组下标个数
int right = strlen(arr1) - 1;//计算数组下标个数
while (left<=right)//循环条件
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
//休息一秒
Sleep(1000);
system("cls");//执行系统命令的一个函数 - cls - 清空屏幕
left++;
right--;
}
return 0;
}

登录三次

int main()
{
int i = 0;
char password[20] = { 0 };
for (i = 0; i <= 3; i++)
{
printf("请输入密码:");
scanf("%s",password);
if (strcmp(password ,"123456")==0)//== 不能用来比较两个字符串是否相等,应该用一个库函数 - strcmp
{
printf("登陆成功!\n");
break;
}
else
{
printf("密码错误\n");
}
}
if (i > 3)
{
printf("三次密码均错误,退出程序!\n");
}
return 0;
}



标签:语句,include,return,int,while,循环,printf,main
From: https://blog.51cto.com/u_15812262/5731525

相关文章

  • 分支和循环
    什么是语句?  c语言中有一个分号隔开的就是一条语句,比如:printf("我爱打游戏");1+2;一.分支语句(选择结构)A.if语句(判断真假,真则执行,假不执行)(1)单分支语句注意:在C语言中,0表示......
  • 循环结构
    1.while循环2.do...while循环3.for循环1.while循环的结构while(布尔表达式){}例子:1.输出1-100publicstaticvoidmain(String[]args){//输出1~100......
  • 对for循环打印三角形的学习理解
    1.for循环这个嵌套其实就是一个套娃形式,一开始无法理解一列一行的样式怎么呈现,后来想通了,其实代码不管怎么敲,想让它呈现出什么样式,它的本质就是一行一行的去输出,只不过可......
  • Python 教程之控制流(4)Python 中的循环技术
    Python在各种顺序容器中通过某些内置函数支持各种循环技术。这些方法主要在竞争性编程中非常有用,在各种需要特定技术的项目中也非常有用,这些项目需要使用循环来维护代码的......
  • Python 教程之控制流(8)在 Python 中使用带有 For 循环的 Else 条件语句
    在python中使用带有for循环的else条件语句在大多数编程语言(C/C++、Java等)中,else语句的使用受到if条件语句的限制。但是Python也允许我们在for循环中使用else条件......
  • 本周回顾:列表、字典、集合、元祖、垃圾回收机制、循环、输出格式
    本周回顾重点大概列表字典集合元祖垃圾回收机制循环输出格式目录本周回顾重点大概本周回顾详细列表字典集合元祖垃圾回收机制循环and分支结构本周回顾详细列表......
  • 数组循环右移2.0
    1.第一次:1,2测试点错误错误原因:忘了m大于n的情况=-=~~第二次:主函数添一个m%n就行~;PS:其他方法1:递归+将最后一个元素保存后,元素整体向前移          2:投机......
  • React循环DOM时为什么需要添加key
    一、React渲染流程和更新流程react渲染流程:jsx->虚拟dom->真实domreact更新流程:props/state改变->render函数重新执行->生成新的虚拟dom树->新旧虚拟dom树进......
  • vue实现表格中添加标签,标签是多个需要循环-render函数 for循环返回
    vue实现表格中添加标签,标签是多个需要循环--实现:render函数for循环返回多个divfields_columns:[{type:'index',width:60,align:'center'},{title:......
  • 学习笔记;python循环
    python学习1.for循环foriinrange(1,10):print(i)#输出为123456789for循环与列表的结和squares=[]fornumberinrange(1,10):square=......