javaforgoto
『壹』 eclipse java goto 報錯
java雖然goto也是關鍵字,但是這個關鍵字沒有實現c的功能,只是看看而已,並沒有用。
如果想用c語言里的goto跳出多重循環,可以用java提供的做標記實現
l:
for(;;)
for(;;){
break l;
}
『貳』 JAVA中,break關於類似goto的用法
這個寫法是對的,你把i范圍取大點,他還是循環2次,沒問題
public class BreakExc {
public static void main(String[] args) {
int a=0;
A:for(int i = 0; i<7; i++){
a++;
if(i == 1) break A;
}
System.out.println(a);
}
}
『叄』 java中類似於C語言的goto無條件轉向語句的語法是什麼
Java不存在goto語句,但是已經用」類名.方法「的形式進行方法調用。
解釋:goto語句作為java的保留欄位,但是沒有實際的應用的。goto語句實際上是C語言的范疇,用來定義指針跳轉用的,java中通過」類名.方法「的形式進行的方法調用,不在用goto語句進行實現,這個是java的一大改進。
JAVA中實現goto語句功能 :
使用方法如下:
1 label0:
2 for (int k = 0; k < 10; k++) {
3 ..........
4 label1:
5 for (int j = 0; j < 10; j++) {
6 ................
7 break label0;
8 }
9 ...........
10 label2:
11 for (int kk = 0; kk < 10; kk++) {
12 ..............
13 break label0;
14 }
15 }
16 System.out.println("here");
將需要跳轉的到的循環開始處使用lablename:的方式標注(lablename是自定義標簽名)
例如,第1行代碼所示.在循環體內,可以使用break lablename;或者continue lablename跳轉到該處第1行代碼的地方,第7行代碼執行後,將跳轉到第1行代碼處.
break 和continue的區別就是,break跳到lablename處後,接下來是執行該lablename所代表的循環之後的語句,例如第16行代碼;而 continue則是將循環記數加1或者減1繼續執行lablename所代表的循環,直到條件不滿足或遇到return語句為止.
這樣我們就可以在循環中任何位置跳轉到父循環外去,無論嵌套多深.
注意:
1. lablename標簽名和所代表的標簽之前不能有任何其他的語句,例如第1行和第2行之間不能有其他的任何語句出現,否則編譯不通過;
2.該跳轉只能跳轉到祖先級循環,同級循環之間不能跳轉,例如第13行不能跳轉到第4行
3.雖然該跳轉在一定程度上方便了編程,不過最好盡量避免,因為它和goto一樣在一定程度上破壞了結構化編程的特點。
更詳細的例子可參考如下鏈接:http://lavasoft.blog.51cto.com/62575/178997/
『肆』 java相關,用什麼代替goto語句
import java.util.Random;
import java.util.Scanner;
public class DoubleBalls {
public static void main(String[] args) {
selectRandom();
}
public static void selectRandom() {
System.out.println("是否機選一組雙色球號碼?(Y/N)");
Scanner input = new Scanner(System.in);
char a = input.next().charAt(0); // 輸入一個char字元,0位即是第一位
if (a == 'Y' || a == 'y') {
Random suiji = new Random(); // 創建suiji方法
int blue = suiji.nextInt(16);// 從0到16中選一個數字個藍球
while (blue == 0) {
blue = suiji.nextInt(16);
}// 如果選到了0,再選一次給blue
int red[] = new int[6];// 用一個6個元素的數組裝紅球
for (int i = 0; i < 6; i++) {
red[i] = suiji.nextInt(33); // 隨機分配0到33的整數
if (red[i] == 0) {
i--;
}
if (i == -1) {
i = 0;
}
for (int j = 0; j < i; j++) {
while (red[i] == red[j]) {
i--;
}// 發現相同的從新回去生成一個
}
}
System.out.print("紅球:");
for (int k = 0; k < red.length; k++) {
System.out.print(red[k] + " ");// 輸出數組red
}
System.out.println(); // 空一行
System.out.println("藍球:" + blue);
} else{
System.out.println("fuck you~");
System.exit(0);
}
selectRandom();
}
}
重構個方法,然後用遞歸調用就可以實現,選擇N,添加了System.exit(0);代碼,可以退出
『伍』 java裡面goto怎麼用
或許你已經聽過goto語句之爭,也知道在Java中goto仍然是一個保留的keyword,但不允許使用。先來看看goto的經典使用方法:
1:statement1;
2:statement_label_for_section2:
3:statement2;
4:goto statement_label_for_section2;
可以看出 2:statement_label_for_section2: 為一代碼片段(Section)的開始標記。
Java語言中不允許使用goto,但可以使用像 2:statement_label_for_section2: 一樣的代碼片段標記作為 break/continue的跳轉目標。
相關標准文件請參見:<<Java Language Spec. >>14.7 Labeled Statements
應用
嵌套循環中,我有時會需要從內循環中直接跳到外循環。用Labeled Statements就可以方便實現。
1: for(int I1 = 0; I1 < 10; I1++) {
2: loop1:
3: for(int I2 = 0; I2 < 20; I1++) {
4: break loop1;
5: }
6: }
continue的用法與break的用法是一樣的。
Java語言中還有很多沒有廣泛應用的小點子。請參見:<<Java Language Spec. >>
Blocks
<<Java Language Spec. >>14.2 Blocks
或許你跟我一樣都是個懶鬼。特別在Test Case 代碼當中,我經常需要在同一Method中定義一大堆的對象,這些對象的操作大者是大同小異的,你應該知道我在想什麼了:Copy&Past。而為每個對象都起一個不同的名字是件痛苦的事。同時這些對象往往只是短命鬼。
1:import java.util.ArrayList;
2:import java.util.Collection;
3:
4:public class T2 {
5:
6: public static void main(String[] args) {
7: {
8: Collection c = new ArrayList();
9: c.add( "1" );
10: c.clear();
11: }
12: {
13: Collection c = new ArrayList();
14: c.add( "2" );
15: c.clear();
16: }
17: }
18:
19:}
『陸』 java有沒有goto
有,goto,const都是Java的保留字,但是一旦出現這兩個關鍵字程序就不能通過編譯,但是有趣的是用一些反編譯工具(比如Jad)對某些java程序進行反編譯時會發現大量的存在goto(即使這些程序源碼不是如此),說明人寫代碼是給人看的,goto被人詬病因為他破壞了程序按順序執行的基本准則,但是編譯器編譯時優先考慮的是如何讓該代碼更有效率的讓計算機執行
『柒』 java中有沒有goto語句
java確實提供了goto語句,並且它是保留的關鍵字,但是JVM並沒有給它提供任何的實現。或許是java並沒打算放開使用這種機制。
不過,我則會採用特殊手段實現類似goto的功用:
importstaticjava.lang.System.out;
classTest{
publicstaticvoidmain(String[]args)throwsException{
intstep=1;
intsum=0;
loop:
for(;true;){
if(step<=100){
sum+=step;
step++;
continueloop;
}elsebreak;
}
out.println("sum="+sum);
}
}
『捌』 java中goto是關鍵字嗎
goto是java語言中的保留字,目前還沒有在java中使用。
其實goto這個詞是C語言中的,goto語句通常與條件語句配合使用,可用來實現條件轉移, 構成循環,跳出循環體等功能。而在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。但是在java語言中,goto這個詞只是作為了保留字,還沒有使用。那是因為java語言講究簡單,方便。
『玖』 Java有沒有goto
goto是java語言中的保留字,目前還沒有在java中使用。
其實goto這個詞是C語言中的,goto語句通常與條件語句配合使用,可用來實現條件轉移, 構成循環,跳出循環體等功能。而在結構化程序語言
中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難...」
『拾』 請問JAVA中如何實現無條件跳轉呢,不能用goto呢
Java中已經不支持goto,
但是continue和break兩個關鍵詞可以在後面加標號支持跳轉。
例如
for(...){
.....
flag1: aaaa=xxxxx;
......
continue flag1;
}