首页 > 编程知识 正文

c语言三种循环结构,c语言是什么

时间:2023-05-06 14:19:29 阅读:9642 作者:4676

上一篇:我学的第一门语言是Java,以前我对c也懂一点,只是懂一点,除了很久没碰过外,几乎只学过赫尔洛世界。 我现在准备进入本考试,所以必须从头开始学习C。 这里从零开始,记录c语言学习的点滴。 欢迎和正在学习c语言的伙伴一起学习。 可以期待将来。 请一起加油。

文章目录关系运算符if-else语句的多分支结构和else-if语句的switch语句

关系运算符

在学习分支结构之前,请先理解c语言的关系运算符。 在c语言中,关系运算符是比较运算符,比较两个操作数时为“真”或“假”。 c语言有六个关系运算符:

运算符===!=名称小于或等于if-else语句if-else语句的常见格式如下:

if )式

语句1;

else

语句2;

此语句用于实现分支结构,根据表达式的值选择执行语句1或语句2之一。 if-else语句的执行流程如下:

首先需要解公式。 如果表达式的值为“真”,则执行语句1。 如果表达式的值为“假”,则执行语句2。例:判断一个数字是奇数还是偶数。

#includestdio.hint main () { int x; printf ('请输入数字:'); 扫描(' % d ',x ); if(x%2==0) printf ) ' %d是偶数! n ',x; }else{printf('%d为奇数! n ',x; }返回0; } scanf()函数:

上述代码中的scanf ()函数是系统提供的输入库函数,也在系统文件stdio.h中声明。 此函数用于从键盘输入数据,以类似函数printf ()的格式调用。

scanf (格式控制字符串、输入参数1、…、输入参数n );

格式控制字符串表示输入的格式,输入参数是变量地址(变量名前加)。

格式控制字符串包含两个信息:格式控制说明和普通字符。

格式控制说明:按指定格式读取数据。 包含以%开头的格式控制字符,根据数据类型使用不同的格式控制字符。 printf (与函数相同。

scanf ) )函数的输入参数必须与格式控制字符串中的格式控制说明相对应,并且它们的类型、数量和位置必须一一对应。

普通文字)输入数据时,必须直接输入的文字。

示例:扫描(“x=% d”,x );

程序输入:

x=13

上述代码运行效果:

多分支结构和else-if文件else-if语句是最常用的实现多分支(多路选择)的方法,一般形式为:

if (式1 )。

语句1;

else if (公式2 ) )。

语句2;

.

else if (公式n-1 ) ) ) )。

文n-1;

else

文n;

执行的流程图如下。

首先求出式1。 如果表达式1的值为“真”,则执行语句1并结束整个if语句的执行。 否则,如果求解表达式2…最后的else处理而不满足条件,即表达式1、表达式2…表达式n-1的值都为“假”,则执行语句n。

下面来看一个简单的例子:

输入类似“操作数运算符操作数”形式的四则运算式,输出运算结果。

#includestdio.hint main () { double value1,value2; char op; 请输入printf ('表达式: '; 扫描(' % lf % c % lf )、值1、op、值2 ); if(op==' ' ) printf ) ).2f%.2f=%.2f(n ),value1,value2,value1 value2); ELSEif(op=='-' ) printf )、' %.2f-%.2f=%.2fn '、value1、value2、value1-value2); ELSEif(op=='* ' ) printf ) ).2f*%.2f=%.2f(n ),value1,value2,value1*value2); ELSEif(op=='/' ) printf ) ).2f/%.2f=%.2f(n ),value1,value2,value1/value2); else printf ('请输入正确格式的数据! n '; 返回0; } char文字内息的数据。 包含字符类型常数,用单引号写有字符

中。
输出%.2f为输出字符型变量,并保留2位小数。
上述案例中输出结果为:

字符型数据的输入和输出
字符型数据的输入输出可以用scanf()、printf(),也可以用getchar()、putchar()。
scanf()和printf()这里就不多说了,这里说一下getchar()和putchar()。

字符输入函数getchar()
调用字符输入函数getchar()可以从键盘输入一个字符。
设ch是字符型变量,函数getchar()的一般使用格式为:
ch = getchar();
其功能是从键盘输入一个字符,并赋值给变量ch。
由于函数getchar()只能读入一个字符,如果输入多个字符,则需要多次调用该函数。

字符输出函数putchar()
调用字符输出函数putchar()可以输出一个字符
函数putchar()的一般调用格式为:
putchar(输出参数);
其功能是输出参数是字符型变量或字符型常量。

【注】函数getchar()和putchar()只能处理单个字符的输入和输出,即调用一次函数,只能输入或输出一个字符。

逻辑运算符
上面的例子关系表达式都是只给定了一个条件,如果需要同时满足两个条件时,就需要用到逻辑运算符了。C语言提供了三种逻辑运算符,如下:

运算符!&&||名称逻辑非逻辑与逻辑或

设a和b表示逻辑运算对象,逻辑运算符的功能描述如下:
!a:如果a为“真”,结果是“假”;如果a为“假”,结果是“真”。
a && b:当a和b都为“真”时,结果是“真”;否则结果为“假”。
a || b:但a和b都为“假”时,结果是“假”;否则结果是“真”。

同样来通过一个例子来了解一下其用法
判断键盘输入的字符是否为英文字母

#include<stdio.h>int main(){ char ch; printf("请输入一个字符:"); ch = getchar(); /* 输入一个字符赋值给ch变量 */ printf("输入的字符为:"); putchar(ch); if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')){ printf("n%c是字母!", ch); }else{ printf("n%c不是字母!", ch); } return 0;}

测试运行结果如下:

输入一个年份,判断是否是闰年

#include<stdio.h>int main(){ int year; printf("请输入一个年份:"); scanf("%d", &year); if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) printf("%d是闰年", year); else printf("%d不是闰年", year); return 0;}

测试结果如下:

嵌套if语句
在if-else语句的内嵌语句是另一条基本的if语句,就形成了嵌套的if-else语句。形式如下。
if(表达式1)
    if(表达式2)   语句1;
    else   语句2;
else
    if(表达式3)   语句3;
    else 语句4;

流程图如下:

具体用法如下:

#include<stdio.h>int main(){ int x; printf("请输入一个整数:"); scanf("%d", &x); if(x > 50){ if(x % 2 == 0){ printf("%d是一个大于50的偶数!", x); }else{ printf("%d是一个大于50的奇数!", x); } }else{ printf("%d小于50", x); } return 0;}

测试效果如下:

switch语句

switch语句可以处理多分支选择问题,根据其中break语句的使用方法(break语句为强制结束循环),一般分两种情况。
1、在switch语句的每个语句段中都使用break语句,也是switch语句的主要使用方法,一般形式为:
switch(表达式){
    case 常量表达式1:语句段1; break;
    case 常量表达式2:语句段2: break;
        …
    case 常量表达式n:语句段n; break;
    default: 语句段n+1; break;
}
该switch语句的执行流程如下:

首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后执行break语句,跳出switch语句。
在switch语句中,表达式和常量表达式的值一般是整形或字符型。每个语句段可以包括一条或多条语句,也可以为空语句。
switch语句中default可以省略,如果省略了default,当表达式的值与任何一个常量表达式的值都不相等时,就什么都不执行。

还是上面的那个小例子:输入一个形式如 “操作数 运算符 操作数” 的四则运算表达式,输出运算结果。用switch语句编写。代码如下:

#include<stdio.h>int main(){ double value1, value2; char op; printf("请输入一个表达式:"); scanf("%lf%c%lf", &value1, &op, &value2); switch(op){ case '+': printf("%.2f + %.2f = %.2fn", value1, value2, value1+value2); break; case '-': printf("%.2f - %.2f = %.2fn", value1, value2, value1-value2); break; case '*': printf("%.2f * %.2f = %.2fn", value1, value2, value1*value2); break; case '/': printf("%.2f / %.2f = %.2fn", value1, value2, value1/value2); break; default: printf("请输入正确格式数据!n"); break; } return 0;}

运行效果如下:

2、在switch语句中不使用break语句
break语句在switch语句中是可选的,不使用break的switch语句如下:
switch(表达式){
    case 常量表达式1:语句段1;
    case 常量表达式2:语句段2:
        …
    case 常量表达式n:语句段n;
    default: 语句段n+1;
}

该switch语句的执行流程如下:

求解表达式后,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的所有语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的所有语句段。

不使用break时,如果表达式的值与常量表达式2的值相等,不但执行语句段2,还执行其后的所有语句段,即执行语句段2 ~ 语句段n+1。

比较这两种switch语句的形式和用法,如果执行相应的语句段后,要终止switch语句的继续执行,可以使用break语句,它一般放在语句段的最后,用于跳出正在执行的switch语句;否则,就继续执行其后的所有语句段。

由此可见,在switch语句所有语句段的末尾使用break,可以降低,清晰的实现多分支选择,这也是switch语句的主要使用方法。

由于初学C语言,上述内容如有错误地方,恳请各位大佬指出!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。