c語言goto
1. c語言goto語句用法
老兄 你要多打幾個花括弧就行了
if(X>=1&&X<2)
goto loop;
if(X>=2&&X<3)
{
printf( "請輸入電流感測器檢測到放電量的大小\n");
scanf("%d",&Q);
{ if (Q<=Qn)
printf( "變壓器正常\n診斷完畢\n");
else
goto loop; }
}
if(X>=3)
{
printf( "請輸入聲波感測器檢測到聲波頻率的大小\n");
scanf("%d",&F);
{
if (F<F1||F>F2)
printf( "變壓器正常\n診斷完畢\n2");
else
goto loop; }
}
loop: { printf( "變壓器存在故障,請分別輸入C2H2,C2H4,CH4,H2,C2H6的含量\n");
scanf("%f,%f,%f,%f,%f",&A,&B,&C,&D,&E);
if (A/B<0.1&&C/D<0.1&&B/E<0.1)
printf( "色譜分析結果:三比值為0 1 0,該變壓器存在局部放電故障\n專家建議:請注意觀察\n診斷完畢\n"); }
2. C語言中goto的用法要盡量詳細
goto語句也稱為無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。
如: label: i++;
loop: while(x<7);
goto loop;
C語言不限製程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向, 轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。
(2)c語言goto擴展閱讀:
go to語句使用原則:
1、使用goto語句只能goto到同一函數內,而不能從一個函數里goto到另外一個函數里。
2、使用goto語句在同一函數內進行goto時,goto的起點應是函數內一段小功能的結束處,goto的目的label處應是函數內另外一段小功能的開始處。
3、不能從一段復雜的執行狀態中的位置goto到另外一個位置,比如,從多重嵌套的循環判斷中跳出去就是不允許的。
4、應該避免向兩個方向跳轉。這樣最容易導致"面條代碼"。
參考資料:網路-goto語句
3. C語言中goto語句的用法舉例來說。
用法如下:
goto語句也稱為無條件轉移語句,其一般格式如下:
goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。
例子: label: i++;
loop: while(x<7);
C語言不限製程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向, 轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。
但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。
(3)c語言goto擴展閱讀:
goto語句的討論
(1)goto語句確實有害,應當盡量避免;
(2)完全避免使用goto語句也並非是個明智的方法,有些地方使用goto語句,會使程序流程更清楚、效率更高。
(3)爭論的焦點不應該放在是否取消goto語句上,而應該放在用什麼樣的程序結構上。其中最關鍵的是,應在以提高程序清晰性為目標的結構化方法中限制使用goto語句
4. C語言中goto的用法
goto
用在內層循環中比較合適,
用
break
只能跳出內層循環,
而
goto
可以直接跳出最外層循環,在合理的地方使用就可以了。
不要頻繁的使用goto,過多的使用goto語句,會使程序混亂
從理論上講,goto語 句是沒有必要的,實踐中不使用goto語句也可以很容易地寫出代碼
但是,在某些場合下goto語句還是用得著的。
最常見的用法是終止程序在某些深度嵌套 的結構中的處理過程,
例如一次跳出兩層或多層循環。這種情況下使用break語句是不能達 到目的的,
它只能從最內層循環退出到上一級的循環
所有使用了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這幾個字元
5. c語言goto語句是什麼意思
不建議使用goto語句,但是遇到goto語句我們要知道是什麼 意思。
goto語句又叫無條件轉移語句,強制跳轉。
先看一個例子:
void main(){
int a=2,b=3;
if(a<b)
goto aa;
printf("hello");
aa:printf("s");
return 0;
}
改程序的執行結果為s
所有在goto aa這句之後直接跳轉到aa:printf("s");
aa:為標記行。冒號切記不可省略。
反之如果代碼這樣子
void main(){
int a=2,b=3;
if(a>b)
goto aa;
printf("hello");
aa:printf("s");
return 0;
}
那麼執行結果就是hellos
可以看到執行了 printf("hello"); aa:printf("s");
aa:將沒有意義。
6. C語言goto語句如何使用
goto語句使用:
1、C#語言中
using System;
using static System.Console;
class Program
{
public static Int32 Main(String[]args){
int n=0;
WriteLine("input a string: ");
loop:if(Read()!=' '){
n++;
goto loop;
}
WriteLine("{0}",n);
return 0;
}
}
2、C語言中
統計從鍵盤輸入一行字元的個數。
#include<stdio.h>
int n=0;
int main(void){
printf("input a string:");
loop:if(getchar()!=' '){
n++;
goto loop;
}
printf("output:%d ",n);
}
例如輸入:abcdefghijklmnopqrstuvwxyz
然後回車Enter
輸出:26
本例用if語句和goto語句構成循環結構。當輸入字元不為' '時即執行n++進行計數。
然後轉移至if語句循環執行,直至輸入字元為' '才停止循環。
3、匯編語言中
goto語句與匯編語言裡面的jmp指令相同,(無條件轉移)
1+2+3........+8+9+10
NASM描述:
mov ax,1
mov bx,0
start:add bx,ax
inc ax
cmp ax,11;比較指令
jzend;零轉移
jmp start
end:
;
;start:end:是標號
Pascal
格式goto<標號>;
其中標號需要申請,在程序開頭寫label<標號1>,<標號2>,……;
其中,標號必須為四位以內的正整數。
在該段落內還需要有<標號>:語句表示將要轉向的方向。
4、delphi中
//Goto語句用在跳轉行號,可以跳轉到當前結構層內任意位置.
//必須在聲明處用label關鍵字聲明行號.
//由於Goto語句會破壞程序的結構,不推薦使用.
var
a,b:Integer;
label
X,Y;
begin
if a>b then
goto X
else
goto Y;
X:
WriteLn('a>b');
Y:
WriteLn('b>a');
end;
(6)c語言goto擴展閱讀:
goto語句無條件轉移語句,其一般格式如下:goto語句標號;其中語句標號是按標識符規定書寫的符號,放在某一語句行的前面,標號後加冒號(:)。語句標號起標識語句的作用,與goto語句配合使用。
如:label:i++;
loop:while(x<7);
goto:loop
C語言不限製程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向,轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移,構成循環,跳出循環體等功能。
但是,在結構化程序設計中一般不主張使用goto語句,以免造成程序流程的混亂,使理解和調試程序都產生困難。
參考資料來源:
網路——goto語句
7. c語言goto怎麼回事
goto語句是C語言中的跳轉命令。使用方法:
gotolabel;
label為本函數中聲明的一個標號,執行goto後,跳轉到該標號指定行處繼續執行。
一般來說,很多書都不推薦使用goto,不過很多書都給了一些很牽強的理由。在某些情況下需要使用goto,比如跳出多重循環。
但是goto不能濫用,主要缺點有這幾個:①影響程序可讀性 ②影響程序執行效率。分支語句會對指令預取造成很大的影響,而且跳轉的位置有時分支預測單元可能預測不到。常用的跳轉語句如if、for等,對這點影響都很小,但是goto不同,一個較長的跳轉可能給指令預取單元帶來很大的麻煩。
所以說,不要濫用goto,除非你確定它不會給你造成麻煩。
8. 有關C語言goto語句
#include <stdio.h>
int main()
{
int i, j;
for ( i = 0; i < 10; i++ )
{
printf( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 3; j++ )
{
printf( " Inner loop executing. j = %d\n", j );
if ( i == 5 )
goto stop;
}
}
/* This message does not print: */
printf( "Loop exited. i = %d\n", i );
stop: printf( "Jumped to stop. i = %d\n", i );//stop: 就是標簽
return 0;
}
上例中,i等於5時,執行goto stop;語句,結果是跳轉到stop: printf(...)這條語句,中間的printf( "Loop exited. i = %d\n", i );不再執行。
正常情況下,語句都是順序執行的,goto語句的作用就是支持隨意跳轉。
goto語句會破壞代碼結構,目前不推薦甚至禁止使用goto語句。
9. c語言中goto語句是什麼意思
跳到相應的句標。其實沒什麼大用處,而且會破壞程序流程。面向過程的語言不推薦使用。
但是可以直接跳出多層循環,也算是一個用處吧。
#include<stdio.h>
int main()
{
int a = 1;
goto end;
a++;
end:printf("%d",a);
}
這會輸出1明白了吧