2017-06-07 52 views
0

比方說,我們有一個for循環的Java for循環我++作爲一個字符串

for(int i = 0; i < 10; i++) { 
    ... 
} 

什麼格式的i++

我有一個String increment = "i++"它告訴我多少增量i通過。 但是,當我只是直接嘗試並將增量字符串作爲增量,它不起作用。我嘗試了下面,但它不起作用。

for(int i = 0; i < 10; increment) { 
    ... 
} 

我該如何做這項工作?

+0

一個字符串不是一個語句,它是一個對象/變量。你究竟想要做什麼? –

+0

本教程可能有助於理解for循環的工作方式; https://www.tutorialspoint.com/java/java_for_loop.htm。 i ++與i = i + 1相同,但我被定義爲一個整數。在引號內有「i ++」是一個字符串,Java不關心那個字符串裏面的內容。它只是Java的一組字符。 –

+0

你的問題不清楚。 「增量」究竟是什麼? – lonesome

回答

0

增量必須是一個直接的歸屬, 你不能用一個字符串來定義這是不可能的

一個解決方案來動態改變多少將是增量,它使用一個變量

int j=1; 

for(int i=0;i<10;i+=j) 

+ =操作它用於增量,例如:

int x = 0; 
x += 1; //x is 1 
x += 3; //x is 4 
x += 2; //x is 6 
x++; //x is 7 

但在大多數情況下,你不需要在AF使用此或循環,你需要做什麼?

擁抱

0

因此,對於這個,你不能用一個字符串作爲表達。 將有很多方法將字符串映射到表達式。

的方法之一是,你可以使用開關情況:

String increment = "i++"; 
int i = 0; 
while(i < 10) 
{ 
    //your logic here 
    switch (increment){ 
    case "i++": 
     i++; 
     break; 
    case "i=i+2": 
     i = i + 2; 
     break; 
    } 
} 

您還可以使用正則表達式或解析字符串轉換爲int

0

您可以在增量字符串解析爲int然後使用作爲您的增量在循環:

String increment = "i+2"; // Will also work for "i++" or "i+n" (n = a number) 
String num = increment.replaceAll("i\\+*", ""); 
int incValue = 1; 
if(!num.isEmpty()) 
    incValue = Integer.parseInt(num); 

for(int i = 0; i < 10 ; i+=incValue) 
{ 
    System.out.println(i); 
} 
0

你可以簡單地得到增量次數的字符串,如果你想要做的增量動態,而不是整個增量聲明。這裏有一個例子:

String inc = "2"; 
String max = "10"; 
for(int i = 0; i < Integer.valueOf(max); i=i+Integer.valueOf(inc)) { 
    System.out.println(i); 
} 
0

i++只是代碼:它不是一個字符串像你想象的。

這裏有一個比喻來證明你的假設:

String someString = 
    "public static void doStuff() 
    { 
     System.out.println("this is working"); 
    }"; 

現在,如果你在一個單獨的方法指的是字符串someString,你認爲doStuff()方法將被調用?當然不是,因爲String只是解釋器沒有經過的文本。解釋者只能通過可執行代碼,其中包括i++