if 语句

格式:

// 1
// 其他语句...
if(表达式){ // 其他语句...
}
// 其他语句... // 2
if(表达式){ }else{ } // 3
if(表达式1){ }else if(表达式2){ }else if(表达式3){ }else{ } // 4
if(表达式1){ }else if(表达式2){ }else if(表达式3){ }
#include<stdio.h>

int main(){
int i;
printf("请输入分数:");
scanf("%d",&i);
if(i >= 90 ){
printf("A");
}else if(i < 90 && i >= 80){
printf("B");
}else if(i < 80 && i >= 70){
printf("C");
}else if(i < 70 && i >= 60){
printf("D");
}else{
printf("E");
}
return 0;
}

switch

格式:

switch(表达式){
case 常量表达式1: 语句或程序块1
case 常量表达式2: 语句或程序块2
....
case 常量表达式n: 语句或程序块n
default: 语句或程序块n+1
}
#include<stdio.h>

int main(){
char c;
printf("请输入成绩等级:");
scanf("%c",&c); switch(c){
case 'A':
printf("成绩合格在90分以上!\n");
break;
case 'B':
printf("成绩合格在80-90分!\n");
break;
case 'C':
printf("成绩合格在70-80分!\n");
break;
case 'D':
printf("成绩合格在60-70分!\n");
break;
default:
printf("成绩无效,请重新输入!");
break;
}
return 0;
}

当 switch 里的 case 中忽略了 break ,会一直往下执行,直到遇到 break 为止。当未匹配到 case,会执行 switch中的default 分支。

while

格式:

while(表达式){
循环体
}
#include<stdio.h>
int main(){ int i= 0;
printf("请输入字符:\n"); while( getchar() != '\n'){
i= i+1;
} printf("你输入了%d个字符\n",i);
return 0;
}

do while

格式:

do{
// 循环体
}while();

for

格式:

for(表达式1;表达式2;表达式3){
// 循环体
}
  • 表达式 1:循环初始化表达式
  • 表达式 2:循环条件表达式
  • 表达式 3:循环调整表达式

C99 新标准

C99 允许在 for 语句的表达式 1 中定义变量。

#include<stdio.h>
int main(){
for(int i = 5; i < 10; i++){
printf("i:%d\n",i);
}
return 0;
}
$ gcc test.c && ./a.out
test.c: In function ‘main’:
test.c:5:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for(int i = 5;i<10;i++){
^
test.c:5:2: note: use option -std=c99 or -std=gnu99 to compile your code $ gcc test.c -std=c99 && ./a.out
i:5
i:6
i:7
i:8
i:9

求质数

#include<stdio.h>

int main(){
int i,j,k,num = 0; scanf("%d",&k); for(i = 2;i < k; i++){
j = 2;
_Bool b = 1;
while(j < i){
if(i % j == 0){
b = 0;
j = i;
}
j++;
}
if(b){
num ++;
printf("%d是质数\n",i);
}
}
printf("%d以内的质数有%d个\n",k,num);
return 0;
}

循环嵌套

99 乘法表

#include<stdio.h>
int main(){
int i,j;
for(i = 1;i <= 9; i++){
for(j = 1;j <= i;j++){
printf("%d x %d = %d ",i,j,i*j);
}
printf("\n");
}
return 0;
}

c 语言学习第四天的更多相关文章

  1. Go语言学习笔记四: 运算符

    Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...

  2. R语言学习 第四篇:函数和流程控制

    变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...

  3. C语言学习总结(四) 剩余内容

    第六章.剩余内容 (预处理指令,宏定义,条件编译,文件操作) 预处理指令 简单的来说就是在程序编译之前需要做的事情 1.宏定义 概念: 是一个替换代码的预处理指令,可以在编译之前进行代码替换(宏展开, ...

  4. C语言学习第四章

    今天学习C语言循环结构,为什么要用循环呢?因为有时候我们对一堆的数字进行重复的处理的时候要重复的编写一些相同或者差不多的代码,让程序显得很臃肿,而且写着也麻烦,如果用循环来写的话能简化很多,出错的话也 ...

  5. C语言学习 第四次作业总结

    本次作业主要为了复习分支语句,同时复习之前学习过的判断语句,printf和scanf函数的使用. 学习到这里,同学们应该已经基本掌握了基本的数据类型,分支结构,循环结构,条件判断语句.应该可以利用这些 ...

  6. 【GO】GO语言学习笔记四

    流程控制 1.条件语句 举个栗子: if x>5 { return 1; }else{ return 0; } 注意:  条件语句不需要使用括号将条件包含起来(); 无论语句体内有几条语句, ...

  7. Go语言学习笔记(四) [array、slice、map]

    日期:2014年7月22日   一.array[数组]   1.定义:array 由 [n]<type> 定义,n 标示 array 的长度,而 <type> 标示希望存储的内 ...

  8. Swift语言学习(四)字符串与Array等集合的使用

    Swift 提供了C和Objective-C基础类型的自己一套版本,包括用于整型的Int,用于浮点值的Double和Float,用于布尔值的Boolean,和用于文本数据的String.Swift还提 ...

  9. GO语言学习(四)GO语言语言结构

    Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码输出了"Hello ...

  10. 【原创】go语言学习(四)流程控制

    目录: 1.if else语句块 2.for语句 3.switch语句 if else语句块 1.基本语法 if condition { //do something } if statement; ...

随机推荐

  1. istio sidecar 工作方式

    istio 是什么 Istio 是一个开放源代码的服务网格,它为基于微服务的应用程序提供了一种统一的方式来连接.保护.监控和管理服务.Istio 主要解决的是在微服务架构中的服务间通信的复杂性问题,它 ...

  2. Python基础篇(基础知识)

    Python语言基础 pyc 文件 执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码. ...

  3. PageOffice 6 最简集成代码(VUE+Springboot)

    本文描述了PageOffice产品在(VUE+Springboot)前后端分离的项目中如何集成调用.调用PageOffice打开文件的主要核心代码是:后端Springboot项目中第6步和前端VUE项 ...

  4. springcloud整合stream解决项目升级的多个消息中间件的收发问题

    cloud stream (一)简介Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架.它可以基于 Spring Boot 来创建独立的.可用于生产的 Spring ...

  5. 面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2)

    面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2) 当初: 代码是做了客户端与业务的分离的封装 现在: 加深下功底,在上一个随笔之前做一个修改和拓展(继承,多态) 作业: 现在从计算器变 ...

  6. 使用jasypt对springboot配置信息加密

    1.pom文件增加依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactI ...

  7. Oracle优化神技之临时表

    Oracle临时表在处理临时数据.会话数据隔离和复杂查询优化方面非常有用. 其底层逻辑是通过Oracle特殊的临时表来减少I/O操作和日志开销,提高了数据库性能和查询效率.开发者可以根据具体需求和场景 ...

  8. [SWPUCTF 2021 新生赛]easy_md5

    打开靶场可以看到一串代码,进行代码审计我们可以知道这个网页包含了一个叫flag2.php的文件,如果想要得到这个文件就得进行GET传参和POST传参. 并且这里用到一个MD5绕过,传参的值不能相等,但 ...

  9. 网络问题排查必备利器:Pingmesh

    背景 当今的数字化世界离不开无处不在的网络连接.无论是日常生活中的社交媒体.电子商务,还是企业级应用程序和云服务,我们对网络的依赖程度越来越高.然而,网络的可靠性和性能往往是一个复杂的问题,尤其是在具 ...

  10. FlashDuty Changelog 2023-09-07 | 新增深色模式与主题配置

    FlashDuty:一站式告警响应平台,前往此地址免费体验! FlashDuty 现在已经全面支持了深色模式,这为您提供了更柔和的光线和舒适的界面外观.并且,您可以根据自己的喜好和使用环境动态切换深色 ...