【发布时间】:2016-03-29 03:55:40
【问题描述】:
因此,当我输入此问题时,我发现了“缺少返回语句”错误的解决方法。但我仍然认为这不是正确的做法。如您所见,我有一些嵌套的 if 语句。我希望在返回任何东西之前满足这两个条件,但是我必须将返回语句放在嵌套的 if 语句之外。如果不满足最后一个条件,这应该会导致很多问题,因为将返回一个空字符串,但我只是觉得这不是做事的最佳方式。
第一次编辑:在我当前的更新中,我仍然缺少退货声明。我可以做与我应用的相同的修复,但我觉得它好像是不合适的。
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 "";
}
}
第二次编辑:附加代码
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);
}
【问题讨论】:
-
如果方法说它返回一个
String,那么通过该方法的所有可能路径必须返回一个String。没有办法解决这个问题。 (如果你愿意,你可以返回null,但你必须返回一些东西)。