Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果函数在我的程序上不起作用_Java - Fatal编程技术网

Java 如果函数在我的程序上不起作用

Java 如果函数在我的程序上不起作用,java,Java,我的代码试图在gene[]上找到相同的3个字母,并在trait[]上打印相应的数组。但是“if函数试图检查整个数组输入是否可以被3整除”。。需要帮助为什么我的“如果”功能不打印 public class HelloWorld { public static void main(String[] args) { //args example: TTTGGTGGGTTC String[] gene = {"TTT","TTC"........GGC","

我的代码试图在gene[]上找到相同的3个字母,并在trait[]上打印相应的数组。但是“if函数试图检查整个数组输入是否可以被3整除”。。需要帮助为什么我的“如果”功能不打印

public class HelloWorld {

    public static void main(String[] args) {
    //args example: TTTGGTGGGTTC     

        String[] gene = {"TTT","TTC"........GGC","GGA","GGG"};
        char[] trait = {'F','F','V','V'......,'E','G','G','G','G'};

        String input = args[0];
        int dome = input.length();
        int x = 0;
        int z = 2;
        int b = 0;



        for (int c = 0 ; c <= dome/3 ; c++){
            String top = input.substring(x, z+1);
            while (!top.equals(gene[b]) ){
                b = b + 1;
            }
            System.out.print(trait[b] + " ");
            x = x + 3;
            z = z + 3;
            b = 0;
        }   
        if ( dome%3 == 0){
            System.out.print("no excess ");
        }else{
            System.out.print("*");
        }
    }

}
公共类HelloWorld{
公共静态void main(字符串[]args){
//args示例:TTTGGTGGGTTC
字符串[]基因={“TTT”,“TTC”...GGC”,“GGA”,“GGG”};
char[]trait={'F','F','V','V','E','G','G','G','G','G'};
字符串输入=args[0];
int dome=input.length();
int x=0;
int z=2;
int b=0;

for(int c=0;c我认为for循环运行的索引太多了

for (int c = 0 ; c <= dome/3 ; c++)

for(int c=0;c如果If/else部分不工作,则可能会从for循环内部引发异常


因为for循环不更新任何内容,因此if/else部分会受到影响。

您在命令行上为程序提供了什么输入?我想知道在
String input=args[0]之后会变成什么输入
。此外,您的c变量从未使用过。您期望的输出是什么,给定的输出是什么?对于给定的示例字符串,它应该打印“无多余”,因为
输入的长度(12)可以除以3@Gus如果(c%3==0),您在哪里看到
?@BryanJamesLim当你给它一个长度为11的输入时会发生什么?我们知道应该发生什么,但问题显然是它没有发生。那么,告诉我们发生了什么。@Gus不,不应该发生。测试是输入的长度是否可以被3整除,并且
dome
包含输入的长度。t问题在于if语句,循环对if语句没有任何更改。@Takendark它与if语句有很大关系。如果长度可被3整除,则循环的最后一次迭代将在
子字符串上抛出一个
IndexOutOfBounds
,因为有额外的迭代,因此程序如果
,就永远不会到达said
。考虑到OP在数据结构方面的高超技巧,如果他们忽略了抛出的异常,我也不会感到惊讶。为什么要投否决票?这就是正在发生的事情。(经过测试和确认。)
for (int c = 0 ; c < dome/3 ; c++)