Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcode für die gemeinsame Nutzung einer For-Schleife, die in PHP auf Return stößt

Beispielcode für die gemeinsame Nutzung einer For-Schleife, die in PHP auf Return stößt

黄舟
黄舟Original
2017-06-25 10:19:483026Durchsuche


Sehen Sie sich zunächst die Druckergebnisse und Rückgabewerte der folgenden Methoden an:

public static void main(String[] args) {
		System.out.println("返回值:" + testResult());

	}
	
	public static boolean testResult() {
		for(int i=1; i<=5; i++) {
			System.out.println("-------------->开始:" + i);
			if(i == 3) {
				return true;
			}
			System.out.println("-------------->结束:" + i);
		}
		return true;
		
	}

Druckergebnisse:

---- ---- ------>Start: 1

------------->Ende: 1

---- ---- ------>Start: 2

------------->Ende: 2

---- ---- ------>Start: 3

Rückgabewert: wahr, was angibt, dass die Rückgabe eines Werts in for dem Beenden der Schleife entspricht .

1) Angenommen, wir rekonstruieren die testResult-Methode und extrahieren die Logik in for in eine separate Methode:

public static boolean testResult() {
		for(int i=1; i<=5; i++) {
			test1(i);
		}
		return true;
		
	} 
	
	public static  void  test1(int i) throws NullPointerException{
		System.out.println("-------------->开始:" + i);
		if(i == 3) {
			return;
		}
		System.out.println("-------------->结束:" + i);
	}

Auch in der Mitte der Hauptmethode platziert. Es ist nur so, dass die Rekonstruktionsmethode direkt in der for-Schleife der testResult-Methode aufgerufen wird und das gedruckte Ergebnis lautet:

-------------> Start: 1

------------->Ende: 1

------------->Start: 2

------------->Ende: 2

------------->Start: 3

------------->Start: 4

------------->Ende: 4

------------->Start: 5

------------->Ende: 5

Rückgabewert: true

Dies zeigt, dass die Methode test1(i) unterbrochen wird, wenn sie versucht, i=3 zu erreichen;

2) Geben Sie der in der for-Schleife aufgerufenen Methode einen Rückgabewert wie folgt:

public static boolean testResult() {
		for(int i=1; i<=5; i++) {
			return test2(i);
		}
		return true;
		
	} 

public static  boolean  test2(int i) throws NullPointerException{
		System.out.println("-------------->开始:" + i);
		if(i == 3) {
			return true;
		}
		System.out.println("-------------->结束:" + i);
		return false;
	}

Das Druckergebnis lautet wie folgt:

--- ---------->Start: 1

------------->Ende: 1

Zurück Wert: false

Dies zeigt, dass der Aufruf einer Methode mit einem booleschen Rückgabewert in for dazu führt, dass die Methode abbricht, bevor sie i=3 erreicht und einen booleschen Wert zurückgibt.

3) Wenn Sie einen booleschen Wert basierend auf Bedingungen in einer for-Schleife zurückgeben müssen. Wenn der Code in der for-Schleife in eine Methode umstrukturiert werden muss, sollte er einen Rückgabewert haben, aber der Rückgabewert darf nicht boolesch sein. Wir können stattdessen auch String verwenden und zur Bestimmung die zurückgegebene String-Marke in der for-Schleife verwenden ob die Schleife verlassen werden soll~ ~

Reform wie folgt:

public static boolean testResult() {
		for(int i=1; i<=5; i++) {
			String flag =  test3(i);
			if("yes".equals(flag)) {
				return true;
			}
		}
		return true;
		
	} 

public static  String  test3(int i) throws NullPointerException{
		System.out.println("-------------->开始:" + i);
		if(i == 3) {
			return "yes";
		}
		System.out.println("-------------->结束:" + i);
		return "no";
	}

Ergebnis drucken:

-------------> Anfang: 1

--------------> Ende: 1

--------------> Anfang: 2

--------------> Ende: 2

--------------> Start: 3

Rückgabewert: true Das kleine Beispiel ist eine Zusammenfassung meiner Erfahrungen mit Fehlern beim Refactoring von ähnlichem Code, weil im eigentlichen Code der Code in „for“ mehrmals wiederholt wird, aber auch, weil der Code in „for“ benötigt um einen booleschen Wert basierend auf der Beurteilungsbedingung zurückzugeben. Während des Rekonstruktionsprozesses habe ich es zuerst in test1 (i) geändert, dann in test2 (i) und schließlich in test3 (i), um den Effekt vor der Rekonstruktion zu erzielen.

Das obige ist der detaillierte Inhalt vonBeispielcode für die gemeinsame Nutzung einer For-Schleife, die in PHP auf Return stößt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn