精华内容
下载资源
问答
  • while的用法:作并列连词用,意思为“而,然而”,表对比but表转折.注意用心比较体会while与but的句中用意1.Some people waste food while others haven't enough.有些人很费粮食,然而有些...

    While这个是英语学习中经常会遇到的,相信大家应该都不陌生,那么你清楚它的用法吗?下面学习啦小编为大家总结while的几种常见的用法,欢迎大家一起学习。

    while的用法:作并列连词用,意思为“而,然而”,表对比

    but表转折.注意用心比较体会while与but的句中用意

    1.Some people waste food while others haven't enough.

    有些人很费粮食,然而有些人却吃不饱.

    2.The son was having a good meal at home,while the parents were working in the fields.

    儿子在家吃好饭而父母却在田里辛勤劳作.

    3.I ought to have helped her,but I never could.

    我本该帮她但没能.

    4.Honey is sweet,but the bee stings.

    蜂蜜很甜,但蜜蜂有刺蜇人.

    while的用法:作连词,引导时间状语

    1.We must strike while the iron is hot.趁热打铁.

    2.While she was listening to the radio,she fell asleep.

    她听着收音机睡着了.

    (2)引起让步状语从句,意思是“虽然…但是….”、“尽管…但是…”(多放于句首)1.While he loves his students,he is very strict with them..

    虽然他爱他的学生,可是他对他们很严格.

    2.While these experiments are interesting and useful,it is important to remember that they may not always tell us much.(BookIIIp125)

    虽然这些实验很有趣也有用,但是很重要的是要记住,这些实验也可能不会告诉你很多.

    (3)引起条件状语,意思是“只要”

    1.While there is life there is hope.只要生命存在,就有希望.

    2.While there is a way there is away.有志者事竟成.

    while的用法:作名词用,表示“一会儿”“一段时间”

    1.She likes to lie down for a while after lunch.

    她喜欢午饭后躺一会儿.

    2.Coming to another country to study requires a big adjustment and it takes a while to fit in.

    来到另一个国家求学,需要花一段时间来适应.

    四.while,when,as的用法区别

    都译为“当…的时候”,区别为:when后的从句谓语动词既可是延续性动词,也可是短暂性动词,而且还可作并列连词,译为“这时”.但以下句型一定用when,作并列连词:

    句型A:was/were doing…when…正在…这时(发生另一事)

    句型B:be about to do…when…正要做…这时(发生另一事)

    句型C:had done…when…刚要做…这时(发生另一事)

    1.We were about to set out when it began to rain.

    我们刚要出发天突然下雨了.

    2.I was walking along the bank of the river when I fell into it.

    我正沿河岸散步突然掉进水里.

    3.He had hardly sat down when his mobile rang.

    他刚一坐下手机就响了.

    while后的从句谓语动词只能是延续性动词,强调主从句的两个动词同时发生;while也可作并列连词,表示两个动作的对比,译为“而”“然而”.as则表示两个变化中的动作的同时性,译为“一边…一边…”.

    1.While his mother was cooking in the kitchen,the boy fell asleep in the chair.

    (在一个延续动作过程中发生另一个动作)

    2.He hurried home,looking behind as he went.

    他匆匆回家,边走边往后看.

    猜你喜欢:

    展开全文
  • 然而,如果你在定义宏时很随意没有认真检查,那么它们可能使你发狂,浪费N多时间。在很多C程序中,你可能会看到许多看起来不是那么直接较特殊宏定义。下面就是一个例子: 1 2 #define __...

    如果你是一名C程序员,你肯定很熟悉宏,它们非常强大,如果正确使用可以让你的工作事半功倍。然而,如果你在定义宏时很随意没有认真检查,那么它们可能使你发狂,浪费N多时间。在很多的C程序中,你可能会看到许多看起来不是那么直接的较特殊的宏定义。下面就是一个例子:

    1

    2

    #define __set_task_state(tsk, state_value)      \

        do { (tsk)->state = (state_value); } while (0)

    在Linux内核和其它一些著名的C库中有许多使用do{...}while(0)的宏定义。这种宏的用途是什么?有什么好处?

    Google的Robert Love(先前从事Linux内核开发)给我们解答如下:

    do{...}while(0)在C中是唯一的构造程序,让你定义的宏总是以相同的方式工作,这样不管怎么使用宏(尤其在没有用大括号包围调用宏的语句),宏后面的分号也是相同的效果。

    这句话听起来可能有些拗口,其实用一句话概括就是:使用do{...}while(0)构造后的宏定义不会受到大括号、分号等的影响,总是会按你期望的方式调用运行。

    例如:

    1

    #define foo(x) bar(x); baz(x)

    然后你可能这样调用:

    1

    foo(wolf);

    这将被宏扩展为:

    1

    bar(wolf); baz(wolf);

    这的确是我们期望的正确输出。下面看看如果我们这样调用:

    1

    2

    if (!feral)

        foo(wolf);

    那么扩展后可能就不是你所期望的结果。上面语句将扩展为:

    1

    2

    3

    if (!feral)

        bar(wolf);

    baz(wolf);

    显而易见,这是错误的,也是大家经常易犯的错误之一。

     

    几乎在所有的情况下,期望写多语句宏来达到正确的结果是不可能的。你不能让宏像函数一样行为——在没有do/while(0)的情况下。

    如果我们使用do{...}while(0)来重新定义宏,即:

    1

    #define foo(x) do { bar(x); baz(x); } while (0)

    现在,该语句功能上等价于前者,do能确保大括号里的逻辑能被执行,而while(0)能确保该逻辑只被执行一次,即与没有循环时一样。

    对于上面的if语句,将会被扩展为:

    1

    2

    if (!feral)

        do { bar(wolf); baz(wolf); } while (0);

    从语义上讲,它与下面的语句是等价的:

    1

    2

    3

    4

    if (!feral) {

        bar(wolf);

        baz(wolf);

    }

    这里你可能感到迷惑不解了,为什么不用大括号直接把宏包围起来呢?为什么非得使用do/while(0)逻辑呢?

    例如,我们用大括号来定义宏如下:

    1

    #define foo(x)  { bar(x); baz(x); }

    这对于上面举的if语句的确能被正确扩展,但是如果我们有下面的语句调用呢:

    1

    2

    3

    4

    if (!feral)

        foo(wolf);

    else

        bin(wolf);

    宏扩展后将变成:

    1

    2

    3

    4

    5

    6

    if (!feral) {

        bar(wolf);

        baz(wolf);

    };

    else

        bin(wolf);

     

    goto语句可以使程序在没有任何条件的情况下跳转到指定的位置,所以goto语句又被称为是无条件跳转语句。

    它的语法如下

    goto label;

    //其它代码

    label:

    其中,label为我们自己定义的一个标签,定义的规则与变量的命名相同,它的位置是不固定的,它可以写在goto语句的后面,也可以写在它的前面,然而goto语句只能在一个函数内部跳转,它并不允许跳转出一个函数外部。

    int day = 1;

    loop:

    if (day <= 31)

    {

    printf("%d\n", day);

    day++;

    goto loop;

    }

    上面程序就是利用了goto和if语句来实现了循环功能,它与while实现的循环功能一样,其中loop为我们定义的一个label(标签)。

    扩展资料:

    使用goto语句的建议

    1) 使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。

    2) 使用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。

    3) 不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。

    4)应该避免向两个方向跳转。这样最容易导致"面条代码"。

     

     

    展开全文
  • c诡异用法

    2011-12-26 15:10:19
    今天在外刊IT评论上看到C语言的一个神奇而诡异的用法。   在C语言里,数组可以这样索引取值: a[10] 这种写法相当常见。 然而,还有一种很少见的写法(绝对可用!)是这样的: 10[a] 这两种写法的效果是...

    今天在外刊IT评论上看到C语言的一个神奇而诡异的用法。

     

    在C语言里,数组可以这样索引取值:

    a[10] 

    这种写法相当常见。

    然而,还有一种很少见的写法(绝对可用!)是这样的:

    10[a] 

    这两种写法的效果是一样的。

     

    刚才试了下,果然如此。好像没见过书上有教这种语法。

    其文还提到switch里嵌套了do while语句,更令人匪夷所思。

    顺便区分了下自动变量,局部静态变量,外部变量。粗略地说,外部变量在函数外面,而前两者在函数内。前两者的区别是,自动变量在函数结束时其值被销毁,局部静态变量的值却会一直保持。

     

    展开全文
  • break和continue的用法

    2014-11-14 23:07:49
    1. continue和break都只是对于循环有效,例如while、do-while、for,然而对于if等其它不是循环都无效; 2.

    1. continue和break都只是对于循环有效,例如while、do-while、for,然而对于if等其它不是循环的都无效;

    2. continue和break都用来中止当次循环,跳出所在的循环体;

    3. continue不执行本次循环后面的语句,直接进入下一次循环;

    4. break也不执行本次循环后面的语句,并且跳出循环,不再执行了。

    展开全文
  • 这样的语句,这样的用法貌似画蛇添足,实际却颇有妙用。单独来看,do…while(0)和顺序执行`…部分的代码的效果并无二致,然而在如下两种情况下的效果却十分巧妙。 一.宏定义中实现局部作用域 我们知道宏定义只是做...
  • 然而,在某些场景中,我们希望在循环结束前就手动离开循环,因此需要使用如下break和continue用法: 1、使用 continue 语句,可以跳过执行本次循环体中剩余代码,转而执行下一次循环。 2、只用 break 语句,...
  • 在平时工作生活中,难免不了去写一些交互性质脚本,然而呢往往有些用户偏偏会输入不合规范输入,为了避免就此退出脚本重新执行,这时候就可以用while去写一个死循环去针对用户输出啊。哈哈~他输不对,就让他...
  • C语言do...while(0)使用小结

    千次阅读 2018-05-02 16:17:08
    这样的语句,这样的用法貌似画蛇添足,实际却颇有妙用。单独来看,do…while(0)和顺序执行`...部分的代码的效果并无二致,然而在如下两种情况下的效果却十分巧妙。 一.宏定义中实现局部作用域 我们知道宏定义只是...
  • 今天发生了个好玩的事儿,在和一个入门的朋友讲 do while 的用法,告诉他为何这个是两次循环,这并没有什么。。。。。 然而while判断的具体是神马值在作比较时候和一个朋友有了奇异。 也就是 ++x < - - y...
  • 自加自减优先级

    2015-06-30 16:53:26
    今天发生了个好玩的事儿,在和一个入门的朋友讲 do while 的用法,告诉他为何这个是两次循环,这并没有什么。。。。。 然而while判断的具体是神马值在作比较时候和一个朋友有了奇异。 也就是 ++x 其实...
  • 然而,树状数组还有很多其他的用法,用来替代线段树可有效降低空间复杂度和代码长度。 贴一份前缀和代码以供参考。 int c[maxn]; int n;//可能的下标最大值 int lowbit(int x) { return x&amp;(-x); } void...
  • while的用法 1.表让步:放在句首,虽然但是 2.并列,与此同时:没有新的主语 3.对比:然而,前后两个完整的句子
  • java接口变量问题

    2018-09-10 23:36:00
    java中接口是不能实例化然而像下面这种用法是可以:  List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter....
  • CruiseYoung提供带有详细书签电子书籍目录 ... SQL Server 2008实战(SQL Server程序员和DBA不可或缺... 9.2.2 使用WHILE 264 9.2.3 使用GOTO 266 9.2.4 使用WAITFOR 267 9.3 游标 268 第10章 存储过程 273 ...
  • 1 /同質容器的用法。角括號( )內就是元素型別。 下面是另一個實例,程式員要求容器內的每一個元素都必須是「一種形狀」,這 是一種「多型」應用,如圖 2。這些泛型語法自 JDK 1.3+GJ以來不曾改變過。 侯捷觀...
  • Python基础-分支和循环

    2020-12-14 21:30:09
    分支结构-if语句2.1简单if语句【单分支】2.2if-else语句【双分支】2.3if-elif-else语句【多分支】2.4嵌套if语句二、循环【重要】while循环+for循环1.用法2.range4.嵌套循环三. break、continue和pass语句使用1....
  • 7、 const的用法,以及声明const变量与宏的区别? 答: const的用法有四种: a): const对象和const类型的对象; b): const指针 和 指向const的指针 及两者结合; c): const 参数修饰 和 参数返回类型的const修饰; ...
  • 3.2.4 do-while循环 128 3.2.5 嵌套循环 129 3.3 C++/CLI编程 132 3.4 小结 137 3.5 练习 138 3.6 本章主要内容 138 第4章 数组、字符串和指针 139 4.1 处理多个相同类型数据值 139 4.1.1 数组 140 ...
  • 然而右边ulmouseenter事件没有被触发。 造成以上现象本质上是<code>mouseenter事件不支持冒泡所致。 如何模拟mouseenter事件。 可见mouseover事件因其具有冒泡性质,在子元素内移动时候,频繁被...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

while然而的用法