c语言选择,循环概述

举报
秋名山码民 发表于 2022/06/30 00:44:50 2022/06/30
【摘要】 选择语句常见的逻辑运算符 if#include <stdio.h>int main(){ int a; scanf("%d", &a); if (a > 1) printf("a大于1"); return 0;} if…else…条件成立执行if语句中的内容,否则执行else后面的内容#include <stdio.h>int main(){ int a; scanf("%d", &a)...

选择语句

常见的逻辑运算符
在这里插入图片描述

if

#include <stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	if (a > 1)
		printf("a大于1");
	return 0;
}

if…else…

条件成立执行if语句中的内容,否则执行else后面的内容

#include <stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	if (a >= 60)
		printf("及格");
	else
		printf("不及格");
	return 0;
}

if…else if…else

对比上面的也不难猜出,
如果…又如果…否则…

#include <stdio.h>

int main()
{
	int a;
	scanf_s("%d", &a);
	if (a >= 60 && a <= 70)
		printf("及格");
	else if (a > 70 && a <= 80)
		printf("良好");
	else if (a > 80)
		printf("优秀");
	else
		printf("不及格");
	return 0;
}

表达式1?表达式2:表达式3

意思就是当表达式1为真的时候,执行表达式2,否则执行表达式3

#include<stdio.h>
int main() {
	char ch;

	scanf("%c",&ch);
	ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch;

	printf("%c", ch);
	return 0;
}

switch语句

swtich(表达式)  {    //   ()中的数据类型仅仅支持整数
                 case 常量1 :
                   要执行的语句;
                   break;
                 case 常量2 :
                   要执行的语句;
                   break;
                 case 常量3 :
                   要执行的语句;
                    break;
                 default:
                   要执行的语句;
                   break;
}

注意:default,当上述条件都不满足的时候,执行default语句

例题

  1. 判断闰年
  2. 判断字符是否是大写字母,如果是小写字母转换为大写,否则直接输出(见上面条件表达式代码)
//闰年
#include<stdio.h>
int main() {
	int y;
	scanf_s("%d", &y);
	if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
		printf("%d是闰年", y);
	}
	else {
		printf("%d不是闰年", y);
	}
	return 0;
}

循环语句

for

试想一个操作,我们定义一个数组大小为10,然后要给这个数组中存入数据,

int a[10];
a[0]=1;
a[1]=2;
...
...
a[9]=10;

for(int i=0;i<10;i++)
{
	a[i]=i+1;
}

int i=0;为循环初始条件
i<10;为循环条件,当i<10时循环继续进行
i++;i每次循环自增1

i++,++i

i++,先执行操作,再自增
++i,先自增,再执行操作

while和do……while

while循环:

while 循环的关键点是循环可能一次都不会执行。当条件为 false 时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。

#include <stdio.h>
 //输出0-9
int main ()
{
   int a = 0;
   while( a < 10 )
   {
      printf("a 的值: %d\n", a);
      a++;
   }
   return 0;
}

与while循环不同的地方是:
do…while循环至少执行一次

#include <stdio.h>
int main ()
{
   int a = 0;
   do
   {
   		printf("我虽然不满足条件,但是也执行一次");
   	}while(a>0);
   return 0;
}

例题:

假设用户的密码是一个三位整数,令用户输入密码,如果输入成功,则提示welcome,如果输入失败,则提示”bad password“,如果三次都没有输入成功,则锁定,提示:“user locked”

#include <stdio.h>
int main()
{
	int key = 123;
	int times = 0;//次数
	bool passed = 0;
	do
	{
		times++;
		int input = 0;
		printf("请输入密码:");
		scanf_s("%d", &input);
		if (key == input)
		{
			passed = 1;
			break;
		}
		else
		{
			printf("bad password\n");
		}
	} while (times < 3);
	if (passed)
	{
		printf("Welcome");
	}
	else
	{
		printf("user locked");
	}
	return 0;

}

函数

我不打算讲多少,函数声明改错题,选择题考的多!

函数的声明( C函数原型),告诉编译器函数的类型,且需要在其他地方找到该函数的定义。
函数的定义,函数的具体实现,确切的指定了函数的具体功能。
函数的调用,导致该函数被执行。
函数必须先声明后使用。函数定义在调用之前,可不声明,函数定义在调用之后或在其他文件中,那么调用之前必须先声明。被调用函数声明可在调用函数之外,也可在调用函数内任何可以放置变量声明的位置。

下面我们来定义一个返回最大值的函数

int max(int num1, int num2) 
{
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

函数声明

int max(int num1, int num2);

函数调用

#include <stdio.h>
 
/* 函数声明 */
int max(int num1, int num2);
 
int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;
   int ret;
 
   /* 调用函数来获取最大值 */
   ret = max(a, b);
 
   printf( "Max value is : %d\n", ret );
 
   return 0;
}
 
/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2) 
{
   /* 局部变量声明 */
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

最后

还有结构体,指针,我不打算讲了,鉴于确实有难度,如果还需要加强学习,欢迎到博主专栏查看,最后祝愿:各位学渣,c语言必过!!!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。