Also, während ich diese Frage eintippte, fand ich einen Workaround für einen Fehler "fehlende Return-Anweisung". Aber ich denke immer noch nicht, dass dies der richtige Weg ist. Wie Sie sehen können, habe ich einige verschachtelte if-Anweisungen. Ich möchte, dass beide Bedingungen erfüllt sind, bevor Sie etwas zurückgeben, aber ich musste die Return-Anweisungen außerhalb der verschachtelten if-Anweisungen platzieren. Wenn die letzte Bedingung nicht erfüllt ist, sollte dies viele Probleme verursachen, da eine leere Zeichenfolge zurückgegeben wird, aber ich habe das Gefühl, dass dies nicht der beste Weg ist, Dinge zu tun.Wie kann ich diesen Code optimieren (return statements)?
1. Edit: mit meinem aktuellen Update, ich vermisse immer noch eine return-Anweisung. Ich könnte die gleiche Reparatur machen, aber ich habe das Gefühl, dass es unpassend ist.
public String findProtein(String dna) {
int start = dna.indexOf("atg");
int stop1 = dna.indexOf("tag", start + 3);
int stop2 = dna.indexOf("tga", start + 3);
int stop3 = dna.indexOf("taa", start + 3);
String subStr1 = dna.substring(start, stop1);
String subStr2 = dna.substring(start, stop2);
String subStr3 = dna.substring(start, stop3);
boolean geneFound = false;
if (subStr1.length() % 3 == 0) {
geneFound = true;
return subStr1;
}
if (geneFound == false) {
if (subStr2.length() % 3 == 0) {
geneFound = true;
}
return subStr2;
}
if (geneFound == false) {
if (subStr3.length() % 3 == 0) {
geneFound = true;
}
return subStr3;
}
if (geneFound == false) {
return "";
}
}
2. Edit: Zusatzcode
private void stopCodon(String gene){
//This prints out the last 3 characters of the gene
String stopCodon = gene.substring(gene.length() - 3);
System.out.println(stopCodon);
}
public void testing() {
String a = "ataaactatgttttaaatgt";
String result = findProtein(a);
stopCodon(result);
}
Wenn die Methode sagt es ein 'String' kehrt dann alle möglichen Pfade durch das * müssen * Methode zurückgeben' String'. Das kommt nicht herum. (Sie können 'null' zurückgeben, wenn Sie möchten, aber Sie müssen etwas zurückgeben). –