go和goto有folx go 和 pro 区别吗

goto与go区别_go to go-牛宝宝文章网
goto与go区别 go to go
go to school,go to bed ,go home概述:为什么两个要用to,go home不用to?问题1:有人说这是因为home是副词。但是,home表示地点,school也是表示地点,gohome是短语,school也是短语,为什么home是副词,school不是副词?问题2:有人说及物动词可以不加to,那么go to bed要to?bed是床,那么go tobed,不就是及物吗?为什么还要加to?问题3:题目那三个单词到底是因为副词而go home不用to,还是因为其他原因?回答得好加10分。回答1:home的确是是副词的词性,原因是因为这个在国外太经常用了,而且很多人说话都比较口语话,说的比较简化.语法是学习其他语言的一个手段,为了满足语法要求所以home必须是副词.回答2:这个问题你可以这么理解,如果一个动词后面可以直接加物(中间没有介词或TO什么的)那么才算是及物动词.就因为是不及物的才加TO.或者你可以把GO TO看成及物动词组,把GO看成不及物动词这样理解可能好些.回答3:同一,就因为国外的人习惯用法,国外的人很少知道什么是语法的,而国外的必须要给这种说话找个解释,就是这样.go是不及物动词,后面跟名词则要+to不过因为home是副词,所以不用+to类似的还有arrive,如果后面是名词的话要加at/in如果后面是副词,像home,here,there则什么都不加,比如说:I often go to school by bike.I go home at 5 o'clock.I arrived in London yesterday.I arrived here just now. go是不及物动词,后面跟名词则要+to不过因为home是副词,所以不用+to类似的还有arrive,如果后面是名词的话要加at/in如果后面是副词,像home,here,there则什么都不加,比如说:I often go to school by bike.I go home at 5 o'clock.I arrived in London yesterday.go是不及物动词,后面跟名词则要+to不过因为home是副词,所以不用+to类似的还有arrive,如果后面是名词的话要加at/in如果后面是副词,像home,here,there则什么都不加,比如说:I often go to school by bike.I go home at 5 o'clock.I arrived in London yesterday.I arrived here just now. I arrived here just now.欢迎您转载分享:
更多精彩:golang的break与标签 - Golang中国
22:20 发布 2430 次点击
func forDemo() {
//Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while
//LOOP://正确
for i := 0; ; i++ {
if i &= 10 {
break LOOP
LOOP: //break label not defined: LOOP
label LOOP defined and not used
fmt.Println(sum)
上面的程序无法编译通过,报错如下:
D:/Java/go/bin/go.exe run processControl.go [E:/Git/golang/src]
# command-line-arguments
.\processControl.go:62: break label not defined: LOOP
.\processControl.go:66: label LOOP defined and not used
求大神解答
qiangmzsx 于
22:21 修改
break的跳转和goto的跳转不一样。
break的跳转标签必须放在循环的for前面,而跳转出来后是去循环之后执行的,goto的跳转则没有这个说法。
这个限制的目的是为了避免goto跳转的缺陷,虽然我觉的更麻烦了。
楼上说的有道理,受教了!
后方可回复, 如果你还没有账号你可以
一个帐号。
好好学习天天向上博客访问: 245977
博文数量: 85
博客积分: 1170
博客等级: 少尉
技术积分: 714
注册时间:
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,continue则相当于跳级。对于break,程序究竟跳到哪儿比较好理解。但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面。  如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括它们的最里层起作用。于是,设想一下子跳出多重循环的人可能忘不了goto。 
Break语句不能用于循环语句(如for循环或while循环)和switch语句之外的任何其他语句中。
 Continue语句和Break语句的区别是:Continue语句只结束本次循环,而不是终止整个循环的执行。而Break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
引用:从上世纪60年代后期开始,不主张使用goto语句。……所有使用goto的程序都可以改写成不用goto。  笔记:goto是一个很有争议的语句,语多书本建议少用或不用它,我个人的习惯是坚决不用。不过,至于“上世纪60年代”这个说法,我倒是一直不知道。因为我自己学习BASIC已经是1994年,那时候学的是带行号的GW-BASIC,goto是必须用到的语句。莫非当时我们学校开设的课程居然是落后二十年的内容?  林锐博士对goto另有看法,他说:“错误是程序员自己造成的,不是goto的过错。goto至少有一处可显神通,它能从多重循环中咻地一下子跳到外面,……就像房子着火了,来不及从楼梯一级一级往下走,可从窗口跳出火坑。……”(《高质量C++/C编程指南》第32页)  我写的程序目前还没有超越三级循环。从最里层往外跳,如果跳一层,就break,如果跳两层或三层,一是这种可能性很小,二是如果真的碰到了,我就用其它条件来控制外层循环是否继续break,自从1997年进入结构化的程序设计以来,我的确完全抛弃了goto。——VB中的“On Error Goto”除外,出现错误,自然不管在哪一层,都给我跳进错误处理中。  goto的目标是一个标号,这个标号的起名倒有点意思,因为标号只用于goto,所以它的名字可以与任何变量名以及其它标识符一样而不产生重名。以前的程序是带行号的,所以就“goto 行号”,现在程序不带行号了,但是允许在任何地方加标号。编译器在碰到它们的时候,大概就是凭其后头的冒号来判断这个名字不需要检验合法性。那么,C++中已有的“public:”算不算标号呢?  为此,我做了个实验:实验内容一是我在类的声明里加入了一行“pub:”,二是我在程序段中加入了一行“public:”。结果发现两都都不能通过编译。也就是说,实验一说明在类定义这样的地方不允许使用标号(也用不着,因为它不在任何函数内部,goto是运行时的事,与编译无关,而且goto不允许跨函数跳越。),实验二说明在程序段中的标号不允许使用保留字。
下面举例说明:
#include void main() {int n,/*这个循环输出1 2 3 4, 在n是5的时候循环退出*/ for ( n = 1; n <= 10; n ++ ) {&& if ( n == 5 )&&& && printf( " %d", n );}
printf( "\n" );/*这个循环输出1 2 3 4 6 7*/for ( m = 1; m <= 10; m ++ ) {&& /*在m是5的时候没有执行当次循环的其他语句,所以未输出5*/ && if ( m == 5 ) &&&&& /*在m是8的时候循环跳转到RET处,连End都不会输出,如果是break,还能输出End*/&& if ( m == 8 )&& {&&& goto RET;&& }&& printf(" %d",m); }
printf ("End");
阅读(14020) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 go goto 的文章

 

随机推荐