精华内容
下载资源
问答
  •  刚开始的时候,我们并不太能体会控制语句的重要性?我们为什么需要控制语句呢?我们知道,程序的执行都是一行接一行、自上而下地进行,不遗漏任何代码。如果所有的应用程序都这样执行,那我们能做的工作就很有限了...

    第二章 控制语句


      刚开始的时候,我们并不太能体会控制语句的重要性?我们为什么需要控制语句呢?我们知道,程序的执行都是一行接一行、自上而下地进行,不遗漏任何代码。如果所有的应用程序都这样执行,那我们能做的工作就很有限了。如果我们需要进行有条件的执行或是循环的执行相同的代码又该怎么办呢?显然自上而下地进行执行代码满足不了需求;这时,我们就需要流程控制语句了,让代码有选择性的执行或者循环。
      本章我们重点向大家介绍控制语句的相关知识,希望对大家有所帮助。

     本章的学习重点:

      ◆    隐式转换
      ◆    显示转换

    2.2类型转换

      C#中的类型转换有两种分类方法,一种是根据转换方式的不同进行划分,可以分为显式 (Explicit) 转换和隐式 (Implicit) 转换两种;另外一种是根据源类型和目标类型之间的关系进行划分,可以分为变换 (Conversion)、投射 (Cast)和装箱/拆箱 (Boxing/Unboxing)。本文将向大家详细介绍显式转换和隐式转换的相关知识。
      类型转换发生在什么时候——当发生值的复制时,可能会发生类型转换。所谓“值的复制”,包括赋值运算和方法传参。如果被赋值的变量或方法的形式参数的类型与实际的对象类型不同,就需要进行类型转换。

    2.2.1隐式转换

      隐式转换是指将低精度数值转换为高精度数值,可以直接赋值而不用手动添加其他代码。隐式转换可能在多种情形下发生,包括在调用方法时或在赋值语句中。例如:
      int intValue = 10;
      double doubleValue = intValue;
      从int类型转换到double类型就是一种隐式转换。隐式转换一般不会失败,转换过程中也不会导致信息丢失。隐式转换就是系统默认的、不需要加以声明就可以进行的转换。在隐式转换过程中,编译器无需对转换进行详细检查就能够安全地执行转换。
      隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。
      下面我们列出了隐式数值的转换规则:
      从 sbyte 到 short、int、long、float、double 或 decimal。
      从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal。
      从 short 到 int、long、float、double 或 decimal。
      从 ushort 到 int、uint、long、ulong、float、double 或 decimal。
      从 int 到 long、float、double 或 decimal。
      从 uint 到 long、ulong、float、double 或 decimal。
      从 long 到 float、double 或 decimal。
      从 ulong 到 float、double 或 decimal。
      从 char 到 ushort、int、uint、long、ulong、float、double 或 decimal。
      从 float 到 double。
      当然,没必要记住它们,因为很容易看出编译器可以执行哪些隐式转换。之前的一个表列出了每种简单数字类型的取值范围。这些类型的隐式转换规则是:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。
      原因很简单,如果要把一个值放在变量中,而该值超出了变量的取值范围,就会出问题。例如,short类型的变量可以存储0~32677的数字,而byte可以存储的最大值是255,所以如果要把一个short值转换为byte值就会出问题。如果short包含的值在256~32767之间,该数值就不能放在byte中。
      但是,如果short类型变量中的值小于255,就能转换这个值,对吗?答案是可以,但必须使用显示转换,执行显示转换有点类似于“我已经知道你对我这么做提出了警告,但我将对其后果负责”。显示转换我们将在下一节详细介绍。
      这里还有几点需要注意的:
      1、不存在向 char 类型的隐式转换,因此其它整型的值不会自动转换为 char 类型。
      2、浮点型不能隐式地转化为decimal型。

    2.2.2显示转换

      显式类型转换,又叫强制类型转换。与隐式转换正好相反,是指当不存在相应的隐式转换时,从一种数字类型到另一种数字类型的转换。显式转换需要用户明确地指定转换的类型,而且不能保证数据的正确性。
      其声明语法如下:
      (type)(表达式)
      例如:下面的例子把一个long类型显式转换为int类型:
      long longValue = 5000;
      int intValue = (int)longValue;
      显式转换可以发生在表达式的计算过程中。它并不是总能成功,而且常常可能引起信息丢失。
      显式转换包括所有的隐式转换,也就是说把任何系统允许的隐式转换写成显式转换的形式都是允许的,例如:
      int intValue = 10;
      long longValue = (long)intValue;
      下面我们列出了显式数值的转换规则:
      从sbyte到byte,ushort,uint,ulong,或char。
      从byte到sbyte或char。
      从short到sbyte,byte,ushort,uint,ulong,或char。
      从ushort到sbyte,byte,short,或char。
      从int到sbyte,byte,short,ushort,uint,ulong,或char。
      从uint到sbyte,byte,short,ushort,int,或char。
      从long到sbyte,byte,short,ushort,int,uint,ulong,或char。
      从ulong到sbyte,byte,short,ushort,int,uint,long,或char。
      从char到sbyte,byte,或short。
      从float到sbyte,byte,short,ushort,int,uint,long,ulong,char,或decimal。
      从double到sbyte,byte,short,ushort,int,uint,long,ulong,char,float,或decimal。
      从decimal到sbyte,byte,short,ushort,int,uint,long,ulong,char,float,或double。
      这种类型转换有可能丢失信息或导致异常抛出,转换按照下列规则进行:
      1、对于从一种整型到另一种整型的转换,编译器将针对转换进行溢出检测,如果没有发生溢出,转换成功,否则抛出一个OverflowException异常。这种检测还与编译器中是否设定了checked选项有关。
      2、对于从float,double或decimal到整型的转换,源变量的值通过舍入到最接近的整型值作为转换的结果。如果这个整型值超出了目标类型的值域,则将抛出一个OverflowException异常。
      3、对于从double到float的转换,double值通过舍入取最接近的float值。如果这个值太小,结果将变成0。如果原double值是NaN,则转换结果也是NaN。
      4、对于从float或double到decimal的转换,源值将转换成小数形式并通过舍入取到小数点后28位(如果有必要的话)。如果源值太小,则结果为0;如果太大以致不能用小数表示,或是无穷和NaN,则将抛出InvalidCastException异常。
      5、对于从decimal到float或double的转换,小数的值通过舍入取最接近的值。这种转换可能会丢失精度,但不会引起异常。

    转载于:https://www.cnblogs.com/zoubiaocai/archive/2010/06/09/1755071.html

    展开全文
  • 而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。 流程控制语句的分类: 顺序结构 选择结构 循环结构 一.选择结构 4.1 if语句的语句格式和使用 格式一:if(比较表达式或者boolean类型的值){ ....

    什么是流程控制语句:
    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的, 也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程
    而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
    流程控制语句的分类:
    顺序结构
    选择结构
    循环结构
    在这里插入图片描述
    一.选择结构
    4.1 if语句的语句格式和使用

    格式一:if(比较表达式或者boolean类型的值){
    执行语句;
    }
    执行流程:先进行比较表达式的判断,为true则执行大括号里面的语句,为false则不执行,不管表达式多复杂,计算出来的结果必须是boolean类型。

    package org.jimmy.demo4;
    
    public class IFDemo {
        public static void main(String[] args) {
            int a=10;
            int b=10;
            if (a==b){
                System.out.println("相等");
            }
        }
    }
    
    

    格式二:if(比较表达式){
    语句体1;
    }else{
    语句体2;
    }
    执行流程:判断出表达式结果后,为true则执行语句体1,为false则执行语句体2。else后面是没有表达式的。

    package org.jimmy.demo4;
    
    import java.util.Scanner;
    
    public class IFDemo2 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            int b = sc.nextInt();
            if(a==b){
                System.out.println("相等");
            }else{
                System.out.println("不相等");
            }
        }
    }
    

    格式三:if(比较表达式1){
    语句体1;
    }else if(比较表达式2){
    语句体2;
    }else if(比较表达式3){
    语句体3;
    }

    else{
    语句体n+1;
    }
    执行流程:先进行比较表达式的判断,为true则执行语句体1,为false则判断比较表达式2,为true则执行语句体2,为false则判断表达式3…只要有一个为true,则后面的表达式都不用执行,如果都为false则执行语句体n+1;

    package org.jimmy.demo4;
    
    import java.util.Scanner;
    
    public class IFDemo3 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int i = sc.nextInt();
            if(i>90&&i<=100){
                System.out.println("A");
            }else if(i>80&&i<=90){
                System.out.println("B");
            }else if(i>70&&i<=80){
                System.out.println("C");
            }else if (i>60&&i<=70){
                System.out.println("D");
            }else if(i>=0&&i<=60){
                System.out.println("E");
            }else{
                System.out.println("输入有误");
            }
        }
    }
    

    4.2 switch语句
    格式:switch(表达式){
    case 值1:

    语句体1;
    break;
    

    case 值2:

    语句体2;
    break;
    

    case 值3:

    语句体3;
    break;
    


    default:

    语句体n+1;
    break;
    

    }
    执行流程:
    先得出表达式的值,再与case后面的值进行匹配,相同则执行对应的语句体,break再跳出当前语句,如果case后面的值都不符合,就执行default后面的语句。
    break可以省略,但会出现case穿透现象:执行完当前语句体后如果没有break,就会继续执行下一个case里面的语句体,直到再次遇到break或者执行所有之后的语句。
    二.循环结构
    4.3 for循环
    格式:for(初始化表达式语句;判断语句;控制语句){
    循环体语句;
    }
    执行流程:先进行初始化语句,再执行判断语句,结果为true就执行循环体语句,为false则不执行该循环,最后执行控制语句,再回到判断语句继续之后的操作,一次循环中初始化表达式语句只执行一次。

    package org.jimmy.demo4;
    
    public class ForDemo {
        public static void main(String[] args) {
            for (int i = 0; i < 5; i++) {
                System.out.println("HelloWorld");
            }
        }
    }
    

    4.4 while循环
    格式1:
    初始化条件语句
    while(判断条件语句){
    循环体语句;
    控制条件语句;
    }
    执行流程:
    先执行初始化条件语句,再进行判断条件语句,结果为true,进入循环体,最后执行控制条件语句,最后在返回继续执行判断条件语句…

    package org.jimmy.demo4;
    
    public class WhileDemo {
        public static void main(String[] args) {
            int i=1;
            while(i<5){
                System.out.println("HelloWorld");
                i++;
            }
        }
    }
    

    格式2:
    初始化条件语句
    do{
    循环体语句;
    控制条件语句;
    }while(判断条件语句);
    执行流程:先执行初始化条件语句,再执行循环体语句,执行控制条件,最后执行判断条件语句进行判断,结果如果为true则继续再执行循环,为false则终止循环。

    package org.jimmy.demo4;
    
    public class WhileDemo2 {
        public static void main(String[] args) {
            int i=1;
            do{
                System.out.println("HelloWorld");
                i++;
            }while (i<5);
        }
    }
    

    三种循环语句的区别:do…while循环在执行过程当中至少执行一次,for循环和while循环会先执行判断条件语句,判断结果是否为真,再决定是否执行循环。建议优先考虑for循环,其次值while循环,最后是do…while循环。
    三. 控制条件语句
    break语句:存在于循环语句内或者在switch语句中,在循环体语句的作用是跳出当前循环。
    continue语句:位于循环语句中,指跳出当前循环,执行下一步操作。
    return:指退出一个方法,跳转到上层调用的方法。

    展开全文
  • Python中流程控制语句有if语句、for循环语句、while循环语句。其中if语句用于根据表达式真值来有选择地执行代码,for和while循环语句用于让一段代码循环执行多次。 if语句 条件测试 首先介绍什么是条件测试,...


      一般情况下,代码都是从上往下顺序执行的。但有些情况下需要根据具体情况有选择地执行代码,或者让一段代码执行多次。这就要用到流程控制语句。Python中的流程控制语句有if语句、for循环语句、while循环语句。其中if语句用于根据表达式的真值来有选择地执行代码,forwhile循环语句用于让一段代码循环执行多次。

    if 语句

    条件测试

      首先介绍什么是条件测试条件测试也是一条表达式,但它的值比较特殊。通常的表达式例如1 + 2'abc' + 'def',这些表达式的值要么是数字,要么是字符串或者其它类型。而条件测试表达式的值是bool类型,也就是只可能是TrueFalse,不可能为其它的值。可以把条件测试表达式理解为一个命题,如果命题为真,那么它的值就是True,如果命题为假,它的值就是False
    然后看几个条件测试表达式的例子:

    print(0 < 1)
    print(1 <= 1)
    print(0 == 1)
    

      上面的0 < 11 <= 10 == 1就是条件测试表达式。0 < 1是正确的,所以它的值为True1 <= 1也是正确的,它的值也为True0 == 1可以理解为命题命题0和1相等,这是一个假命题,所以它的值为False

    简单 if 语句

      知道什么是条件测试后,就可以来看if语句了。简单if语句的功能就是先判断条件测试为真还是为假,如果为真,就执行条件测试后面的语句,否则不执行。
      来看下面的例子:首先定义了一个变量temperature,它的值为30。然后是if语句,if后是一个条件测试temperature > 26,因为30 > 26是一个真命题,所以接下来会执行语句print('太热了')

    temperature = 30
    if temperature > 26:
        print('太热了')
    

      上面例子的输出结果如下:

    太热了
    

      但如果temperature的值为20,那么temperature > 26就是一个假命题,就不会执行print('太热了')了。
      在这个例子中,temperature的值在写代码的时候就设置好了,所以看不出if语句有什么用。但在实际情况中,temperature的值在写代码时往往是不知道的,需要在程序执行时人工输入或者以其它方式得到。例如下面的例子:

    s = input('输入温度:')
    temperature = float(s)
    if temperature > 26:
        print('太热了')
    

      首先调用input函数让用户输入温度,用户的输入会以字符串的形式存在变量s中。然后用函数float将字符串s转换为数字并赋值给变量temperature。然后就是前面讲的if语句了。
      if语句的冒号:后面可以是一条语句,也可以是多条语句组成的语句块,如果要执行多条语句,在每条语句前面按tab键缩进就好了。例如下面的例子中,前两条print语句前面有缩进,所以会被视为if语句的一部分,它们是否执行取决于temperature > 26是否成立;而第三条print语句print('程序执行结束')前面没有缩进,它不属于if语句的一部分,不论temperature > 26是否成立,它都会执行。

    temperature = 30
    if temperature > 26:
        print('太热了')
        print('开风扇')
    print('程序执行结束')
    

    if-else 语句

      有时会有这种情况:当条件测试为真时,就去执行语句A,否则就去执行语句B。这可以用多个if语句来实现,例如:

    temperature = 20
    if temperature > 26:
        print('太热了')
    if temperature <= 26:
        print('凉快!')
    

      更为方便的做法是使用if-else语句。if-else语句的作用是首先判断if后的条件测试,如果为真,就执行条件测试后面的语句,否则就执行else后面的语句。例如上面的例子写成if-else的形式就是:

    temperature = 20
    if temperature > 26:
        print('太热了')
    else:
        print('凉快!')
    

      else必须和if搭配使用。

    if-elif-else 语句

      if-else适用于只要判断两种情形的情况,但有时需要判断多种情形,例如对于学生成绩,0-60分时,输出“不及格”;60-70分时,输出“及格”;70-80分时,输出“良好”;80分以上时,输出“优秀”。这时就需要用到if-elif-else语句了。

    s = input('输入成绩:')
    grade = int(s)
    if grade < 60:
        print('不及格')
    elif grade < 70:
        print('及格')
    elif grade < 80:
        print('良好')
    else:
        print('优秀')
    

      上述代码中的执行过程如下图所示,菱形框中的为条件测试:

    Created with Raphaël 2.3.0开始输入gradegrade<60不及格结束grade<70及格grade<80良好优秀yesnoyesnoyesno

      elif的数量可以是任意的。如果ifelif的条件都不成立的时候什么都不需要执行,最后的else及其冒号后面的语句就可以省略。


    for 循环语句

    一般情况下,程序是按顺序执行的,即执行完一条语句,就去执行下一条语句,但有时希望重复执行同一条语句,比如希望在屏幕上打印HelloWorld100次,如果不用循环语句,就不得不写100遍print('HelloWorld')

    Python的for循环语句需要和列表搭配使用,先看下面的例子:首先定义了一个包含6个数字的列表,然后就是for语句了,先说程序的执行过程:让i等于lst的第0个元素,然后执行print语句;再让i 等于lst的第1个元组,然后执行print语句;再让i等于lst的第3个元素,然后执行print语句…直到i等于lst的最后一个元素,然后执行print语句。

    lst = [1, 2, 3, 4, 5, 6]
    for i in lst:
    	print(i, i ** 2, i ** 3)
    
    1 1 1
    2 4 8
    3 9 27
    4 16 64
    5 25 125
    6 36 216
    

    如果上面代码不用for语句就是这样的:

    i = lst[0]
    print(i, i ** 2, i ** 3)
    
    i = lst[1]
    print(i, i ** 2, i ** 3)
    
    i = lst[2]
    print(i, i ** 2, i ** 3)
    ... ...
    ... ...
    i = lst[5]
    print(i, i ** 2, i ** 3)
    

    可以看出,如果不用for语句,除了赋值语句i = lst[x]print语句每次都是一样的。在for语句中,for语句后面的语句为循环体,也就是每次都相同的语句,在上面的例子中,循环体就是print(i, i ** 2, i ** 3)。循环体可以包含多条语句,例如将上面的print语句写成3条语句分别打印i的一次方、二次方、三次方:

    lst = [1, 2, 3, 4, 5, 6]
    for i in lst:
    	print(i)
    	print(i ** 2)
    	print(i ** 3)
    

    但需要注意的是,循环体的每条语句前面都要缩进,也就是按tab键。
    缩进

    如果想结束循环体,也就是在循环执行结束后再写一些语句,而不让这些语句被当作循环体,不缩进就好了,例如:

    lst = [1, 2, 3, 4, 5, 6]
    for i in lst:
    	print(i, i ** 2, i ** 3)
    print('All numbers have been processed!')
    
    1 1 1
    2 4 8
    3 9 27
    4 16 64
    5 25 125
    6 36 216
    All numbers have been processed!
    

    可以看到,print('All numbers have been processed!')前没有缩进,所以没有被当作循环体,它只执行了一次。

    另外,元组、区间(range)也可以和for搭配使用,例如下面的例子中:对range(6)即区间[0, 6)中的每个整数执行循环体,区间中有6个整数,所以循环体执行了6次。

    for i in range(6):
    	print('HelloWorld')
    
    HelloWorld
    HelloWorld
    HelloWorld
    HelloWorld
    HelloWorld
    HelloWorld
    

    while 循环语句

      前面介绍过for循环语句,但for必须要搭配列表使用,for比较适合于循环次数已知的情况,但有时循环次数事先是不知道的,例如:不断地让用户输入一个数字,然后程序输出这个数的相反数,当用户输入0的时候,程序才终止。如果用for循环的话,就必须定义一个无限长的列表,才能达到这个效果(因为你也不知道用户最多会输入多少次,所以这个列表必须为无限长)。而定义一个无限长的列表是无法实现的。
      循环次数不确定的循环语句比较适合用while语句。while语句同样要用到条件测试表达式,一个完整的while语句执行过程如下:
    ①判断while后面的条件测试是否为真;
    ②如果为真,就执行循环体;如果为假,跳到第④步;
    ③(条件为真才会执行这一步)执行循环体,然后回到第①步;
    ④循环结束。

      来看个例子:

    x = 0
    while x < 30:
        x = x + 13
    print(x)
    

      首先给x赋值为0。然后就是循环语句了,首先判断x < 30,由于0 < 30,所以条件为真,执行循环体x = x + 13,这时x的值就为13了;然后再次判断x < 30,由于13 < 30,条件为真,继续执行循环体,然后x的值就变成26了;然后再判断x < 30, 由于26 < 30,条件还是为真,继续执行循环体x = x + 13,然后x的值就变成39了;然后判断x < 30,由于39 > 30,条件为假,就不再执行循环体了,循环结束。接下来就执行while循环后面的语句,也就是print(x),程序输出如下:

    39
    

      这段程序的流程图如下:
    在这里插入图片描述
      再回到本节开头的那个例子:不断地让用户输入一个数字,然后程序输出这个数的相反数,当用户输入0的时候,程序才终止。用while语句的写法如下:

    s = input('输入一个数字:')
    number = float(s)
    while number != 0:
        print(-number)
        s = input('输入一个数字:')
        number = float(s)
    
    展开全文
  • 随机选择数据库记录方法(使用Randomize函数,通过SQL语句实现)  对存储在数据库中数据来说,随机数特性能给出上面效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见解决...
  • 12.5.1 创建默认值 12.5.2 默认值绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程基本概念 13.1.2 存储过程优缺点 13.2 存储过程中常用控制语句 13.2.1 IF....
  • C语言 inline类型函数

    2012-03-21 17:57:20
    选择inline类型的函数是条件 ·函数足够简单,并且非常频繁被调用,只有一条程序就可以完成任务 ·不能包含复杂结构控制语句例如while switch     C 内联函数(inline) 什么是内联函数 内联...
     
    选择inline类型的函数是有条件的
    ·函数足够简单,并且非常频繁被调用,只有一条程序就可以完成任务
    ·不能包含复杂的结构控制语句例如while switch
     
     

    C 内联函数(inline)

    • 什么是内联函数
      • 内联函数是为了解决C 预处理器宏存在的问题所提出一种解决方案,用来提高函数使用效率
    • 内联函数定义
      • 内联函数使用inline关键字定义,
        并且函数体和申明必须结合在一起,
        否则编译器将他作为普通函数对待。
        • inline void function(int x); //仅仅是申明函数,没有任何效果
        • inline void function(int x) //正确
          {
          return x;
          }
      • 在类内部定义的函数自动的为内联函数,
        不需要加关键字inline。
        • class point
          {
          int i;
          public:
          void SetValue(int x) //内联函数
          {
          i = x;
          }
          }

    • 内联函数和普通函数的区别
      • 普通函数:
        编译器在它的符号表中放入函数类型(包含名字和参数类型的函数原型及函数的返回类型)。
      • 内联函数:
        函数的代码也被放入符号表,代码是以源程序形式还是以编译过的汇编指令形式存放取决于编译器。

        当内联函数太复杂,编译器将不能执行内联。

    -------------------------------------------------------------
     
     
     
     
     
     
     
     
     
     
    在c 中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。

    可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,涵数的死循环递归调用的最终结果就是导致栈内存空间枯竭。

    下面我们来看一个例子
    //程序作者:管宁
    //站点:www.cndev-lab.com
    //所有稿件均有版权,如要转载,请务必著名出处和作者

    #include <iostream>
    #include <string>
    using namespace std;

    inline string dbtest(int a); //函数原形声明为inline即:内联涵数


    void main()
    {
    for (int i=1;i<=10;i )
    {
    cout << i << ":" << dbtest(i) << endl;
    }
    cin.get();

    }

    string dbtest(int a)//这里不用再次inline,当然加上inline也是不会出错的
    {
    return (a%2>0)?"奇":"偶";

    }
    上面的例子就是标准的内联涵数的用法,使用inline修饰带来的好处我们表面看不出来,其实在内部的工作就是在每个for循环的内部所有调用dbtest(i)的地方都换成了(i%2>0)?"奇":"偶"这样就避免了频繁调用函数对栈内存重复开辟所带来的消耗。

    说到这里很多人可能会问,既然inline这么好,还不如把所谓的函数都声明成inline,嗯,这个问题是要注意的,inline的使用是有所限制的,inline只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如while switch,并且不能内联函数本身不能是直接递归函数(自己内部还调用自己的函数)。

    说到这里我们不得不说一下在c语言中广泛被使用的#define语句,是的define的确也可以做到inline的这些工作,但是define是会产生副作用的,尤其是不同类型参数所导致的错误,由此可见inline有更强的约束性和能够让编译器检查出更多错误的特性,在c 中是不推荐使用define的。

    展开全文
  • c#流程控制-if和while

    2020-09-18 01:39:05
    if和while是流程控制语句 我们写代码,是从上往下依次执行 if是选择,可以跳过某些代码,while是循环,用来重复执行某些代码 if if用法是 if (条件) { 代码块 } 如果条件为真则执行,如果为假则不执行 while ...
  • (用比较多)我们也可以不需要if来判断是否输入:Scanner 进阶使用Scanner其他用法输入int或者小数类型正确输入错误输入其他使用方法进入Scanner类源码查看案例顺序结构顺序结构介绍实例选择结构if单...
  • 6、int 和 Integer 有什么区别  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 ...
  • 什么是ACL

    2011-06-21 18:17:07
    ACL 还可用于选择要以其它方式分析、转发或处理流量类型。 当每个数据包经过关联 ACL 接口时,都会与 ACL 中的语句从上到下一行一行进行比对,以便发现符合该传入数据包模式。ACL 使用允许或拒绝规则...
  • 如果你有什么中立观点(比如说没有被SUN和Microsoft百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般引擎,具有支持多种语言能力,不过默认...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    1.5 这样声明有什么问题?char*p1,p2;我在使用p2时候报错了。 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样代码有什么问题?char*p;*p=malloc(10); 声明风格 1.7 怎样声明和定义全局变量...
  • matlab代码影响在Julia中复制Schelling隔离动态模型 此存储库通过复制来引入。 陪同职位 ...我没有讨论概念(类型,循环,控制语句等),而是采用了问题驱动方法-给定一个特定问题,我们如何使用J
  • verilog教程(目录)

    2011-07-16 17:11:20
    8.1.3 两类语句在模块中使用 62 8.2 时序控制 63 8.2.1 时延控制 63 8.2.2 事件控制 64 8.3 语句块 65 8.3.1 顺序语句块 66 8.3.2 并行语句块 67 8.4 过程性赋值 68 8.4.1 语句内部时延 69 8.4.2 阻塞性过程赋值 ...
  •  4.4.1 程序是控制语句串联起来语句  4.4.2 豪华工资统计程序  第5章 用函数封装程序功能  5.1 函数就是一个大“箱子”  5.1.1 函数声明和定义  5.1.2 函数调用机制  5.1.3 函数声明与函数调用  5.1.4...
  • C语言科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    9.2.8 涉及字符的控制语句 244 9.2.9 字符输入输出 245 9.3 字符串作为抽象数据类型 245 9.3.1 分层抽象 246 9.3.2 抽象类型的概念 247 9.4 strlib.h接口 247 9.4.1 确定字符串长度 248 9.4.2 从一个字符...
  • 编译原理(龙书)目录

    热门讨论 2010-10-22 15:43:22
    8.4 控制语句和逻辑表达式的代码生成 328 8.4.1 if 和while 语句的代码生成 328 8.4.2 标号的生 成和回填 330 8.4.3 逻辑表达式的代码生成 330 8.4.4 if 和while 语句的代码生成过程 样例 331 8.5 过程和函数 调用...
  • 1.5 这样声明有什么问题?char *p1, p2; 我在使用p2时候报错了。 3 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样代码有什么问题?char *p; *p=malloc(10); 4 声明风格 4 1.7 怎样声明和...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.5 这样声明有什么问题?char *p1, p2; 我在使用p2时候报错了。 3 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样代码有什么问题?char *p; *p=malloc(10); 4 声明风格 4 1.7 怎样声明和...
  • 、if else和switch语句及条件操作符来控制程序流程,学习如何使用逻辑操作符来表达决策测试。另外, 本章还将介绍确定字符关系(如测试字符是数字还是非打印字符)函数库cctype。最后,还将简要地介绍 文件输入/...
  • 、if else和switch语句及条件操作符来控制程序流程,学习如何使用逻辑操作符来表达决策测试。另外, 本章还将介绍确定字符关系(如测试字符是数字还是非打印字符)函数库cctype。最后,还将简要地介绍 文件输入/...
  • 、if else和switch语句及条件操作符来控制程序流程,学习如何使用逻辑操作符来表达决策测试。另外, 本章还将介绍确定字符关系(如测试字符是数字还是非打印字符)函数库cctype。最后,还将简要地介绍 文件输入/...
  • 、if else和switch语句及条件操作符来控制程序流程,学习如何使用逻辑操作符来表达决策测试。另外, 本章还将介绍确定字符关系(如测试字符是数字还是非打印字符)函数库cctype。最后,还将简要地介绍 文件输入/...
  • 存储模块的控制语句 语句块 赋值语句 条件语句 循环语句 语句 调用语句 语句 语句 语句 语句 打印语句 存储模块异常处理 异常变量说明 异常抛出 异常处理器 异常处理用法举例 存储模块...
  • 集成电路的类型很多,从大的方面可以分为模拟电路和数字集成电路2 大 类。数字集成电路广泛用于计算机、控制与测量系统,以及其它电子设备中。 一般说来,数字系统中运行的电信号,其大小往往并不改变,但在实践分布...
  • JavaScript 编程语言中变量、数据类型、运算符、流程控制语句、函数关联。 重点介绍了运算符和流程控制语句(分支选择结构 if else 循环结构 for)。 学习感悟 上课老师举得列子还是能听懂,老师带我们写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 469
精华内容 187
关键字:

选择控制语句的类型有什么