C语言中,if是一个条件语句,用法
if(条件表达式) 语句
如果满足括号里面表达式,表示逻辑为真于是执行后面的语句,否则不执行(表达式为真则此表达式的值不为0,为假则为0,也就是说,如果括号里面不是一个判断表达式,你填了一个不是0的数字或其他,表示条件永远为真,一定执行后面的语句,反之,你填了一个0,则永远不会执行后面的语句)。
if后面的语句如果多于一句,可以放在{}里面作为复合语句,
例:
int a=2,b=1;
if(a>b) cout<<"a>b"<<endl; //2>1 ,表达式a>b为真,于是执行后面的语句,输出a>b 这几个字符。
goto 是转向语句,按其英文含义就可理解
用法标号:语句;
......................
goto 标号;
或者 goto 标号;
.....................
标号:语句;
标号和goto必须包括处于同一个函数内标号的写法跟变量名一样不能和关键词相同,后面必须带冒号
当程序执行到goto这个语句时,程序就转跳到标号后面的语句去了
例
int x=1;
biaohao:
x=x+1;
if(x<100)
goto biaohao;
cout<<"x=100"<<endl; //当x小于100,执行if 后面的goto语句,于是转跳到biaohao处执行biaohao后面的语句x=x+1,接着if语句,如此反复。
,直到x=100 if语句括号表达式为假不执行后面的goto语句,于是跳过执行cout语句输出x=100这几个字符。
C中goto语句的用法
个人觉得goto用在内层循环中比较合适,用break只能跳出内层循环,而goto可以直接跳出最外层循环,在合理的地方使用就可以了。
debian:/home/server# vi goto.c
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j;
for (j = 0; j < 3; j++) {
for (i = 0; i < 10; i++) {
printf("j: %d, i: %d\n", j, i);
if (i == 3) goto last;
}
}
last: printf("This is the last line\n");
return 0;
}
debian:/home/server# gcc -o goto goto.c
debian:/home/server# ./goto
j: 0, i: 0
j: 0, i: 1
j: 0, i: 2
j: 0, i: 3
This is the last line
摘抄了几段别人对goto的评价:
1.不要频繁的使用goto,过多的使用goto语句,会使程序象面条一样乱成一锅粥。
在C++语言中使用goto语句会跳过构造函数和析构函数的执行。
2.goto语句最好是少用点,这个东东对你的程序不是很好,
上面有一种情况可以用到这个,跳出多重循环。
3.goto语句通常不用, 主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理.
4.有時候用goto語句,一眼就看清楚了程序的意圖,可用那些對應的循環break語句等實現的語句段,要想老半天才搞清楚程序意圖。
還是不要刪除goto 的好,而且現在對goto做了不少限制,只要不濫用goto就好。
5.世间万物就没有绝对的事情,每样东西都有它存在的理由,有它存在的特定场合,goto也是这样,从一般的程序流程来说,它破坏了清晰的程序结构,会让代码晦涩难懂,另外尤其重要的是,现今的编译器一般会对一个顺序的程序块进行优化,而goto会打乱当前的执行顺序,造成已经被预取到的指令全部废除,代价比较大。
但是另一方面,goto 的好处在于,它可以避免重复的代码输入,这一点在比较核心的代码中非常普遍,尤其是对出错代码的处理……
/t/20030328/12/1588507.html
/t/20030607/00/1886445.html
/search?hl=en&source=hp&q=c%E8 %AF%AD%E8%A8%80+goto+site%&btnG=Goo gle+Search。