栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

选择结构的程序设计

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择结构的程序设计

选择结构的程序设计 if语句的选择结构
  • 二次函数求根的if语句

#include
#include
int main()
{
    double a,b,c,x1,x2,p,q,disc;
    scanf("%lf%lf%lf",a,b,c);
    disc=b*b-4*a*c;
    if(disc<0)
        printf("This equation hasn't real roots");
    else
    {
        p=-b/z*a;
        q=sqrt(disc)/z*a;
        x1=P+q;
        x2=p-q;
        printf("real roots:nx1=%7.2fnx2=%7.2fn",x1,x2);     
    }
    return 0;
    
    
}
  • 涉及比较数的大小并排序时,也可以用if语句,然后用一个中间变量暂存

if(a>b)
{
    t=a;
    a=b;
    b=t;
}
if 语句的一般形式
  • if(表达式)

    语句

  • if(表达式)

    语句

    else

    语句

  • if(表达式)

    语句;

    else if(表达式)

    语句;

    else if(表达式)

    语句;

    ......

    else if (表达式)

    语句;

    else

    语句;

    //这是if语句的嵌套使用

    //注意:表达式后面不用分号,而语句后面要分号

    //语句如果是复合语句的要用花括号括起来

关系运算符
  • 优先次序

    算术运算符>关系运算符>赋值运算符

  • 六种关系运算符

    • < >

    • <=(小于或等于) >=(大于或等于)

    • ==(等于)*一个等于号的是赋值

    • !=(不等于) remember!!!!

  • d=a>b(若a>b,则d的值为1;else d=0)

逻辑运算符和逻辑表达式
  • 逻辑运算符和优先次序

    • 有三种逻辑运算符:and(&&)、or(||)、Not(!)

    • a&&b : 如果a和b都为真,则结果为真,否则为假

    • a||b :如果a和b有一个以上为真,则结果为真;二者都为假时,结果为假

    • 如果a为假,则!a为真;如果a为真,则!a为假

  • 优先次序:!>算术运算符>关系运算符>(&&和||)>赋值运算符

  • 逻辑表达式

    • 若a=4,则!a的值为0

    • 若a=4,b=5,则a&&b的值为1,a||b的值为1,!a||b的值为1

    • 若a=4,b=0,则a&&b的值为0,a||b的值为1

      通过上面几个例子可发现,由系统给出的逻辑运算结果不是0就是1

    • 逻辑运算符两侧的运算对象还可以是字符型、浮点型、枚举型或指针型纯量型数据

条件运算符和条件表达式
  • c语言唯一一个三目运算符

    表达式1?表达式2:表达式3(条件运算符有两个符号组成:? 和:)

    • max=(a>b)?a:b 若a>b则max=a;若a!>b则max=b

    #include
    int main()
    {
        char ch;
        scanf_s("%c",&ch);
        ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
        printf("%cn",ch);
        return 0;
        //输入一个字符,大写转小写,小写正常输出
    }

选择结构的嵌套
if()
    if() 语句1//内嵌if
    else 语句2  
else
    if() 语句3//内嵌if
    else 语句4    
  • 应当注意if与else的配对关系,else总是与它上面离它最近的未配对的if配对

用switch语句实现多分支选择结构
  • switch语句都可以用嵌套if语句来处理,但如果分支较多,则嵌套的if语句层数较多,程序冗长而且可读性降低,而switch可以直接处理多分支选择

  • eg:

    #include
    int main()
    {
        char grade;
        scanf_s("%c",&grade);
        printf("You score:");
        switch(grade)
        {
                case'A':printf("85~100n");break;
                case'B':printf("70~84n");break;
                case'C':printf("60~69n");break;
                case'D':printf("0~60n");break;
            default:printf("enter date error!n");
        }
        return 0;
            //等级grade定义为字符变量,从键盘输入一个大写字母,赋给变量grade,switch得到grade的值并把它和各case中给定的值('A','B','C','D'之一)相比较,如果和其中之一相同,则执行该case后面的语句,输出相应的信息
    }
  • 在执行一个case子句后,应当用break语句使流程跳出switch结构,即终止switch语句的执行

  • 多个case标号可以共用一组执行语句

    • case 'A':
      case 'B':
      case 'C':printf(">60n");break;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/889654.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号