C语言 分支语言 if switch语句

一、内容提要

1、if...else 语句;

2、switch 语句。

二、内容详解

1、if...else 语句的三种表示

1、if(表达式 1)

        { 语句块 1 }

2、if(表达式 1)

        { 语句块 1 }

        else

        { 语句块 2 }

3、if(表达式 1)

        { 语句块 1 }

        else if

        (表达式 2)

        { 语句块 2 }

        ......

        else if

        (表达式 n)

        { 语句块 n }

        else

        { 语句块 n+1 }

        2、switch 语句。

switch(整型表达式)

{

        case 常量表达式 1:

                语句块 1;

                break;

        case 常量表达式 2:

                语句块 2;

                 break;

         ......

        case 常量表达式 n:

                语句块 n;

                break;

        default:

                语句块 n+1;

                break;

}

        注意事项:  1、switch 中的整型表达式支持,bool,char,int,long,long long 和枚举类型,不 支持 float,double,字符串等数据类型。

2、case 中必须使用常量表达式如 1,1+2 等,不能使用变量 a。

3、switch 进入点,当 switch 中的变量和 case 中的值相同时进入,case 标签 的顺序可以任意,不影响程序结果。

4、switch 退出时机,当 switch 进入到相应的 case 语句后,则从上往下依次 执行,只有遇到 break 或者整个 switch 执行完才结束。


分支结构 :if   else     ;switch(不重要)
  if(表达式)//如果
  { 语句块1 }
  else  //否则
  {  语句块2 }

  if()
  {}
  else if()
  {}
  else if()
  {}
  .....
  else
  {}
  真:非0
  假:0
  =:赋值,将右边赋值给左边
  ==:等号
  /:注意整除,整数/整数,结果为整数(去尾)
  ^:按位异或 (相同的位不一样才为1)
  12:         0000 1100
  13:         0000 1101
   12^13:  0000 0001->1
():用于函数或者提升优先级
sqrt:开根号

if(星期一)
{ 教1上自习  }
else
{
     if(星期二)
     { 教2上自习 }
     else
     {
        if(星期三)
        { 图书馆上自习 }
        else
        { 上自习 }
     }
}

if(星期一)
{ 教1上自习 }
else if(星期二)
{ 教2上自习 }
else if(星期三)
{ 图书馆上自习 }
else
{ 上自习 }

浮点数:不精确(误差)

 


 

#include <stdio.h>

//输出1~1000的所有完数
int main()
{
    int sum = 0;//因子之和
    for(int x=1;x<=1000;x++)
    { 
        sum = 0;
        for (int i = 1; i < x; i++)
        {
            if (x % i == 0)//i是x的因子
            {
                sum += i;
            }
        }
        if (x == sum)
        {
            printf("%d是完数\n", x);
        }
    }
    return 0;
}

/*
//输入一个整数n判断其是否为完数
int main()
{
    int n;
    int sum = 0;//因子之和
    scanf_s("%d",&n);
    for (int i = 1; i < n; i++)
    {
        if (n % i == 0)//i是n的因子
        {
            sum += i;
        }
    }
    if (n == sum)
    {
        printf("%d是完数\n",n);
    }
    return 0;
}
*/

/*
int main()
{
    double high = 100;//当前的高度
    double sum = 100;//走过的总高度
    for (int i = 1; i < 10; i++)
    {
        high /= 2;
        sum += 2 * high;
    }

    printf("%f\n",sum);
    //for (int i = 1; i <= 10; i++)
    //{
    //    high /= 2;//high = high/2;
    //}
    //printf("%f\n",high);

    return 0;
}
*/
/*
int main()
{
    int n, m;
    int tmp = 1;
    scanf_s("%d%d", &n, &m);//获取两个值
    //从后往前遍历,找到的第一个公约数即可
    for (int i = n; i >= 1; i--)//10,15
    {
        if (n % i == 0 && m % i == 0)
        {
            tmp = i;
            break;//跳出一层循环
        }
    }
    printf("%d\n",tmp);
    return 0;
}
*/

/*
//从键盘获取两个值,n和m,求它俩的最大公约数
int main()
{
    int n, m;
    int tmp = 1;
    scanf_s("%d%d",&n,&m);//获取两个值
    for (int i = 1; i <= n; i++)
    {
        if (n % i == 0 && m % i == 0)//公约数
            tmp = i;
    }
    printf("%d\n",tmp);
    return 0;
}*/
/*
//求10的阶乘
int main()
{
	int sum = 1;
	for (int i = 1; i <= 10; i++)
	{
		sum *= i;
	}
	printf("%d\n", sum);
	return 0;
}
*/
/*
//1+2+3+4+5+...+100
int main()
{
    int sum = 0;
    int i;
    for (i = 1; i <= 100; i++)
    {
        sum += i;//sum = sum + i;
    }
    printf("%d\n",sum);

    return 0;
}
*/

/*
int main()
{
    int i;
    for (i = 0, printf("#1,%d\n", i);
        printf("#2,%d\n", i), i < 3;
        i++, printf("#3,%d\n", i))
    {
        printf("语句块1,%d\n",i);
    }
   // for (int i = 0; i < 3; i++)
    //{
    //    printf("%d\n",i);//0,1,2
    //}
    return 0;
}
*/
/*
//输入一个数字,判断是否能被3和5整除
int main()
{
    int n;
    scanf_s("%d",&n);//从键盘获取一个数字
    if (n % 3 == 0 && n % 5 == 0)//不能使用/
    {
        printf("%d能整除\n",n);//输出到屏幕
    }
    else
    {
        printf("%d不能整除\n",n);
    }
	return 0;
}
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安冉冄先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值