当前位置: 首页 > 知识库问答 >
问题:

计数器没有更新我的循环,我不知道为什么

葛越
2023-03-14

我正在努力练习techniqual测试,我必须计算DNA序列中的字符数,但无论我做什么,计数器都不会更新,这真的很令人沮丧,因为我用ruby学习代码,它会更新,但Java似乎有一个问题。我知道我的语法有问题,但是我怎么也想不出来。

public class DNA {

  public static void main(String[] args) {
    String dna1 = "ATGCGATACGCTTGA";
    String dna2 = "ATGCGATACGTGA";
    String dna3 = "ATTAATATGTACTGA";
    String dna = dna1;
    int aCount = 0;
    int cCount = 0;
    int tCount = 0; 

    for (int i = 0; i <= dna.length(); i++) {

      if (dna.substring(i) == "A") {
        aCount+= 1;
      }
      else if (dna.substring(i) == "C") {
        cCount++;
      } 
      else if (dna.substring(i) == "T") {
        tCount++;
      }
      System.out.println(aCount);
    } 
  }
}

如果满足条件并重新分配值,它只会一直返回零,而不是加一。

共有1个答案

吴建中
2023-03-14

是时候学习一些基本的调试了!

让我们看看您正在查看的< code>substring中的实际内容。添加< code > system . out . println(DNA . substring(I));到您的循环中。你会看到:

ATGCGATACGCTTGA
TGCGATACGCTTGA
GCGATACGCTTGA
CGATACGCTTGA
GATACGCTTGA
ATACGCTTGA
TACGCTTGA
ACGCTTGA
CGCTTGA
GCTTGA
CTTGA
TTGA
TGA
GA
A

因此,< code>substring并不像您所想的那样——它从索引处开始获取子字符串,并一直到字符串的末尾。只有最后一个字符有机会符合你的条件。

然而,最后一个仍然不符合你的条件,如果你是语言新手,这是可以理解的。Java,==是“参照相等”——当应用于非原语时,它断言这两个东西在内存中占据相同的位置。尤其是对于字符串,这可能会产生令人惊讶和不一致的结果。Java为字符串保留了一段特殊的内存,并试图避免重复(但没有那么努力。)重要的一点是string1.equals(string2)是正确的检查方式。

当你的程序没有按照你认为的那样做时,做一些这样的可见性和健全性检查是个好主意。通过一些练习,您将了解要检查的值。

 类似资料:
  • 今天我在家里的电脑上安装了netbean,以便在家做一些工作。我安装了java 8 JDK(151),并安装了包含所有内容的netbean(没有进行自定义安装)。然后我把我的项目从github上撤下来。 我的安装文件夹是在E:\netbean我的项目文件夹是默认的c: 我加载了项目,打开XAMPP并运行它。太好了,很管用。 然后我对HTML进行了更改(修复了我犯的一个拼写错误)。再次运行。找不到零

  • 我拿不到输出。。有人能帮我得到输出吗 下面给出了程序运行的示例(注意:下面的粗体文本是用户输入的输入): 输入三角形的三条边

  • > 控制器 } 服务 -板 > 原因:java。lang.IllegalArgumentException:给定的id不能为null!位于组织。springframework。util。明确肯定组织中的notNull(Assert.java:201)。springframework。数据jpa。存储库。支持简单Parepository。java上的deleteById(SimpleJpaRepos

  • 我对我的英语提前表示歉意, 我得复制这件原作 但我这样做:我的解决方案 这是我的代码: null null 我不知道为什么我字幕会这样移动。 我事先谢谢你。

  • /tester.java:3:错误:import java.lang.Math类型的非法启动;^Tester.java:3:错误:应输入java.lang.Math>*;^

  • 在我使用的一个类中,他们给出了一个用循环编辑数组内容的示例。 类示例: 我的代码: 我尝试运行语句,但没有成功。我联系了他们的“现场帮助”,但他们没有什么帮助。谁能告诉我我在这里没有看到什么吗?