前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >部分C语言语句

部分C语言语句

原创
作者头像
暮云
发布2022-10-05 11:48:00
5930
发布2022-10-05 11:48:00
举报
文章被收录于专栏:C/C++语言学习

C++语言语句

分支语句

if语句

代码语言:c++
复制
//单分支
if(表达式)
    语句;
//若表达式为真,则执行该语句,否则什么都不执行
if(表达式)
    语句1;
else
    语句2;
//若表达式为真,则执行语句1,否则执行语句2
//多分支
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else 
    语句3;
//若表达式1为真则执行语句1,另外如果表达式2成立则执行语句2
//否则执行语句3,以表达式1为先,三个语句只可执行一个
//只有表达式1为假,后面才可继续往下运行
代码语言:c++
复制
#include<stdio.h>
int main()
{
    int age=17;
    if(age<18)
        printf("未成年");
    else 
        printf("成年");
    return 0;
}
代码语言:c++
复制
//1.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int num = 0;
    scanf("%d",&num);
    if (num%2==1)
        printf("该数为奇数");
    else 
        printf("该数为偶数");
    return 0;
}
代码语言:c++
复制
//2.
#include<stdio.h>
int main()
{
	int i = 1;
	while (i<100)
	{
		if (i%2==1)
		{
			printf("%d ", i);
		}
		i++;
	}
	
	return 0;
}

switch语句(表达多分支)

代码语言:c++
复制
#include<stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1://case接常量且为整型常量表达式
            printf("星期一\n");
            break;//break用于switch语句的结束
        case 2:
            printf("星期二\n");
            break;
        default://当输入值超出switch范围,进入default
            printf("输入错误");
            break;
    }
    return 0 ;
}
  • break 若未出现则继续往下运行代码
  • break 可省略
代码语言:c++
复制
#include<stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("工作日\n");
            break;//输入12345值都出现工作日
    }
    return 0 ;
}

while 语言语句(循环)

代码语言:c++
复制

while(表达式)//若表达式为真则无限循环,若变为假则停止循环

{

代码语言:txt
复制
循环语句

}

代码语言:c++
复制
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
		printf("ldl大帅哥 ");
		i++;
	}
	
	return 0;
}
  • break 在while中的作用
代码语言:c++
复制
//终止循环
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
        if(i==5)
            break;//i=5时终止循环
		printf("%d ",i);//只打印到 4
		i++;
	}
	
	return 0;
}
  • continue 在while中作用
代码语言:c++
复制
//终止本次循环
#include<stdio.h>
int main()
{
	int i = 1;
	while (i <= 10)
	{
        i++;
        if(i==5)
            continue;//i=5时回到while语句循环
        //即终止i==5这次的循环
		printf("%d ",i);//不打印 5
	}
	
	return 0;
}
  • getchar()在while中的作用
代码语言:c++
复制
//getchar()为一个输入函数
//在输入函数中有一个输入缓冲区
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int ch = 0;
    int ret = 0;
	char password[20] = { 0 };
	printf("请输入密码:");
	scanf("%s", password);
    //取走缓冲区中的"%s"还剩下\n
	while ((ch = getchar()) != '\n');
    //读取到"\n"字符后停止
	printf("请确认(Y/N):");
	ret = getchar();
	if (ret == 'Y')
	{
		printf("确认成功");
	}
	else
	{
		printf("放弃确认");
	}
	return 0;
}
  • putchar()为输出函数
代码语言:c++
复制
#include<stdio.h>
int main()
{
    int ch = 0;
    while((ch = getchar())!=EOF)
    {
        if(ch<'0'||ch>'9')
            continue;
        putchar(ch);//相当于printf()
    }
    return 0;
}

for循环

代码语言:C++
复制
#include<stdio.h>
int main()
{
    int i = 0;
    // 初始化 判断 调整
    for(i=1;i<10;i++)
    {
        if(i==5)
            break;//跳出循环
        printf("%d ",i);
    }
    return 0;
}
  • 注意:不可再for循环内修改变量,防止for循环失去控制
  • 前闭后开写法
代码语言:c++
复制
for(expr1;expr2;expr3)
{}
  • 变种
代码语言:c++
复制
//1.
for( ; ; )//括号内无表达式,表达式被省略
{
    printf("");
}
//2.
for(  ,  ;  ,  ;  ,   )//用多个表达式控制
{
    printf("");
}

do...while()循环

代码语言:c++
复制
#include<stdio.h>
int mian()
{
    int i = 0;
    do
    {
        printf("%d");
        i++;
    }
    while(i<10);
}
return 0;
  • break与continue用法同上

二分查找法

代码语言:c++
复制
//从一个数组里找下标为7
#include<stdio.h>
int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int k = 7;
    int sz = sizeof(arr)/sizeof(arr[0]);//计算元素个数
    int left = 0;//左下标
    int right = sz - 1;//右下标
    while(left<=right)
    {
        int mid = (left + right)/2;
        if(arr[mid]<k)
        {
            left = mid + 1;
        }
        else if(arr[mid]>k)
        {
            right = mid - 1;
        }
        else
        {
            printf("找到了,下标是:%d",mid);
        }
    }
    if(left>right)
    {
        printf("找不到");
    }
    return 0;
}

多个字符两端向中间移动

代码语言:c++
复制
//"welcome to my world !"
//"#####################"
//实现将井号对应上方元素下移
#include<stdio.h>
#include<string.h>//strlen
#include<windows.h>//Sleep
#include<stdlib.h>//system
int main()
{
	char arr1[]="welcome to my world !";
    char arr2[]="#####################";
    int left=0;
    int right=strlen(arr1)-1;//右下标,strlen函数不计\0
    while(left<=right)
    {
        arr2[left]=arr1[left];
        arr2[right]=arr1[right];
        printf("%s\n",arr2);
        Sleep(1000);//1000单位为毫秒,停留一秒
        system("cls");//system为执行系统命令函数,'cls'为清空屏幕
        left++;
        right--;
    }
    printf("%s\n",arr2);
    return 0;
}

模拟密码登录

代码语言:c++
复制
//只登录三次
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>//strcmp函数
int main()
{
    int i=0;
    char password[20]={0};
    for(i=0;i<3;i++)
    {
        printf("输入密码:");
        scanf("%s",password);
        if(strcmp(password,"12160809")==0)//==不能用来比较字符串是否相等,应使用一个库函数-strcmp,括号内相等则为零
        {
            printf("登录成功\n");
            break;
        }
        else
            printf("密码错误\n");
    }
    if(i==3)
        printf("三次密码均错误,立刻报警,你跑不掉了!- !");
    return 0;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C++语言语句
    • 分支语句
      • if语句
        • switch语句(表达多分支)
          • while 语言语句(循环)
            • for循环
              • do...while()循环
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档