IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言基础知识之循环语句 -> 正文阅读

[C++知识库]C语言基础知识之循环语句

循环语句

while循环

  • 当型循环

    while(表达式)
    {
      //循环体   
    }
    

do_while循环

  • 无论条件满足与否,都会执行一次
do
{
    
}while(表达式);
//do-while 无论条件满足与否,都会执行一次
do
{
    
}while(0);
  • while循环与do while 循环区别
    • while循环有可能一次循环也不会执行,do while 循环不管怎么样都会执行一次循环

for循环

for(表达式1;表达式2;表达式3)
{
    表达式4;
}
//for死循环
for(;;);
for(;1;);
for(;;)
  • for中() 三部分都可以省略 for(; ; ) (死循环)

  • 执行顺序: 1 2 4 3 2 4 3 2 4 3

  • 表达式1: 写条件的初始化

  • 表达式2: 描述条件

  • 表达式3: 改变循环条件,往不满足靠拢

    • 案例

      #include <stdio.h>
      int main()
      {
      	//1+2+3+...100
      	int i = 0;
      	int sum = 0;
      	while (i <= 100)
      	{
      		sum += i;   //sum=sum+i;
      		//改变循环变量 -->往不满足条件的位置靠拢
      		i++;
      	}
      	printf("sum=%d\n", sum);
          return 0;
      }
      

跳转语句

  • continue: 结束本次循环,直接进入下一次循环,不能独立存在,只能存在循环中

  • break:直接跳出一层循环,当然也可以在switch中使用(跳出switch)

  • goto: 跳转到标签位置(仅限同一个函数中)

    • 在程序描述循环时候,尽量不要使用goto

    • goto语句的嵌套会严重影响的代码可读性

    • 在程序深层嵌套的时候,可以考虑使用goto

    • 使用

      //标签
      	//标识符:
      //goto 标签名;  跳到标签处
      

循环语句的使用

  • 循环一般都是用来描述有规律的问题,比如推导公式类的和递推关系类的
    • 数学问题
    • 逻辑问题
//问题1:1!+2!+3!+4!+5!    阶乘
//0!=1
//x!=x(x-1)(x-2)...1;
//3!= 3*2*1;
#include <stdio.h>
int main() 
{
    int i = 0;
	int temp = 1;
	int iresult = 0;
	for (i = 1; i <= 5; i++)  //1 2 3 4 5 
	{
		//i!   1!=1  2!=1!*2  3!=2!*3
		temp *= i;   //temp=1   temp=1*2  temp =1*2*3
		printf("%d\t%d\n", temp, i);
		iresult += temp;
	}
	printf("iresult=%d\n", iresult);
	return 0;
}

//问题2:1/2+2/3+3/4+4/5
//n/n+1   ---> n<5
//n-1/n;
#include <stdio.h>
int main() 
{
    double result = (double)1 / 2 + (double)2 / 3 + (double)3 / 4 + (double)4 / 5;
	printf("result=%.2lf\n", result);
	result = 0.0;
	for (int i = 1; i < 5; i++) 
	{
		result += (double)i / (i + 1.0);
	}
	//i = 3;  错误 ,i作用域只能在for循环{}中使用
	printf("result=%.2lf\n", result);
}
//问题3:求1+1/3+1/5+1/7+....+1/n 的和
#include <stdio.h>
int main() {
	double s = 1.0;
	int n, i = 3;
	scanf("%d", &n);
	//第一种方法
	/*while (i <= n){
		s += 1.0 / i;
		i = i + 2;
	}*/

	//第二种方法
		for (i = 3; i <= n; i += 2)
			s += 1.0 / i;
	printf("s=%.2f", s);
	return 0;
}

循环嵌套

  • C语言任何循环之间都可以允许嵌套的,并且嵌套的层数没有限制,只要逻辑与语法上没有问题都可以

    • 打印形状问题

      • 外循环表示行,内循环表示列
        • 打印倒三角形
        • 在这里插入图片描述
      #include <stdio.h>
      int main() {
      	int i, j;
      	for (i = 10; i >= 1; i--) {
      		for (j = 1; j <= i; j++)
      			printf("*");
      		printf("\n");
      	}
      }
      
      • 打印正三角

      • 在这里插入图片描述

        #include <stdio.h>
        int main() {
        	int i, j;
        	for (i = 1; i <= 10; i++) {
        		for (j = 1; j <= i; j++)
        			printf("*");
        		printf("\n");
        	}
        }
        
      • 打印等边三角形
        在这里插入图片描述

        #include <stdio.h>
        int main() {
        	int i, j, k;
        	for (i = 1; i <= 10; i++) {
        		for (k = 15; k >= i; k--)
        			printf(" ");
        		for (j = 1; j <= 2 * i - 1; j++)
        			printf("*");
        		    printf("\n");
        	}
        }
        
      • 打印菱形

      在这里插入图片描述

      #include <stdio.h>
      int main() {
      	int i, j, k;
      	for (i = 1; i <= 5; i++) {
      		for (k = 10; k >= i; k--)
      			printf(" ");
      		for (j = 1; j <= 2 * i - 1; j++)
      			printf("*");
      		    printf("\n");
      	}
      	for (i = 4; i >= 1; i--) {
      		for (k = 10; k >= i; k--)
      			printf(" ");
      		for (j = 2 * i - 1; j >= 1; j--)
      			printf("*");
      		printf("\n");
      	}
      }
      
    • 求数之和

      //求100以内能被3和5同时整除的数之和
      int s = 0,i = 1;
          while (i <= 100){
              if (i % 3 == 0 && i % 5 == 0){
                  s += i;
              }
              i++;
              printf("%d",s);
          }
      //s = 1-3+5-7+9-......+101 的和
      #include <stdio.h>
      int main() {
      	//第一种
      	/*int s = 0, i = 1, flag = 1;
      	while (i <= 101){
      		s += flag * i;
      		i += 2;
      		flag = -flag;
      	}
      	printf("%d", s);*/
      	//第二种
      	/*int s = 0, s1 = 0, s2 = 0, i;
      	for (i = 1; i <= 101; i += 4)
      		s1 = s1 + i;
      	for (i = -3; i >= -99; i -= 4)
      		s2 += i;
      	s = s1 + s2;
      	printf("%d", s);*/
      	//第三种
      	int s = 0, a = 1, b = -3;
      	while (a <= 97){     //a <= 101
      		s += a + b;
      		a = a + 4;
      		b += -4;
      	}
      	s += 101;           // s += 103
      	printf("%d", s);
      }
      
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:38:18  更:2022-09-24 20:40:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 14:55:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码