C语言从头学13——流程控制(二)

2024-05-29 22:12
文章标签 语言 流程 控制 13 从头

本文主要是介绍C语言从头学13——流程控制(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       接着学习流程控制,并继续上一篇的编号。
4、while 语句
       while语句用于循环结构,满足条件时,不断执行循环体,直到条件不满足时退出。如果
一直满足循环条件无法结束循环,会陷入死循环,这是应当避免的。
      格式:
      while (条件表达式)
      {
          语句1;
          ......
          语句n;
       }
    举例程序:

  #include<stdio.h>int main(void){int i = 0;while (i < 26) //如果条件不成立则不能进入循环体{printf(" %c", 65+i); //利用ASCII值显示小写字母,a到z的ASCII码为097~122printf(" %c\n", 97+i); //利用ASCII值显示大写字母,A到Z的ASCII码065~090i++; //如果没有这条语句,会陷入死循环}getchar(); //屏显暂停return 0;}

       补充:如果将条件表达式设成 "1" 即循环条件总是为真,这样的循环有用吗?回答是有用的,我们可以在循环体内设置一个 if 语句,当退出条件满足时,在if语句中运行 break 就退出了循环。这种用法多用于菜单项的循环,只有选择"退出"或"结束"时才运行break。(break后边详细介绍)
5、do...while结构
       这种结构也叫直到型循环,即先不管是否符合循环条件,上来先执行一次循环体,然后再看是否满足循环条件是继续循环还是结束。
       格式:
       do {
              语句1;
               ......
              语句n;
            } while (条件表达式)
       这种结构除了直接进入循环外,与while语句一样,也可以设成无限循环再用 if 语句中的break退出。举例小程序如下:

  #include<stdio.h>int main(void){int i = 0;do {  //不管循环条件如何,先进入循环体printf("i=%d\n",i); //显示i值if (i == 10) break; //定义退出条件,退出条件也可以放到while后边的括号中(i<=10)i++;}  while (1);getchar();//屏显暂停return 0;}

6、for语句
       for语句是编程过程中使用最频繁的循环结构,适用于精确控制循环次数,经常用于为数组赋值、显示数组内容等场合。
      格式:
      for ( 初始表达式; 循环条件判断; 循环变量处理表达式 )
     {
         语句1;
         .....
         语句n;
    }
    代码举例:

   int x[10]; //声明一个10个元素的int型数组for(int i=0;i<10;i++){x[i]=i; //为x[i]赋值printf("%i\n",x[i]);\\每行一个显示x[i]}

        补充:for 循环体有两个或两个以上语句时,我们会给循环体语句用大括号"{}"括起来,但对于
 一个语句的情况,可以不用大括号括起来。此处建议大家:对于初学者,无论是一句还是多句,
 干脆都用大括号括起来;如实在不想用"{}"括起来,循环体语句要和循环条件放到一行,这样看上去逻 辑更清楚。这些也适用使用 if 语句等。

这篇关于C语言从头学13——流程控制(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014769

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,