无法执行循环

时间:2013-11-19 16:32:13

标签: java

我是java的新手,只是为了学习目的编写了一个程序。 我有两个字符串数组,我想比较两个字符串数组的长度。如果长度相等,则将每个第一个字符串数组的值与每个第二个数组的值进行比较。如果值匹配则打印该值。 无法纠正问题所在?

     package com.equal.arrat;

    import java.util.ArrayList;
    import java.util.List;

       public class ArrayEqual {
         public static void main(String[] args) {

        String s[] = {"anuj","kr","chaurasia"};
        String s1[] = {"anuj","kr","chaurasia"};

        if (s.length==s1.length)
        {
            System.out.println(s.length);
            for (int i =0 ; i>=s.length;i++)
            {
                for (int j =0 ;j>=s1.length;j++)
                {
                System.out.println("test");
                if (s[i].equals(s1[j]))
                {
                System.out.println("ok" + s[i]);
                }
                else{
                    System.out.println("not ok");
                    }
        }
        }
       }
        else{
            System.out.println("Length Not Equal");
        }
    }
} 

8 个答案:

答案 0 :(得分:5)

使用了错误的逻辑。你的意思是<而不是>=

for (int i =0 ; i>=s.length;i++) 

应该是

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

希望这会有所帮助。 : - )

答案 1 :(得分:3)

首先,你说ij为0,然后检查for循环,如果它大于s.length或者不是假的,那么它就不会执行。尝试

for (int i =0 ; i<s.length;i++)
{
    for (int j =0 ;j<s1.length;j++)
    {

答案 2 :(得分:2)

您的for循环条件检查中存在错误。这一行 -

for (int i = 0; i >= s.length; i++)

应该更改为 -

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

同样,改变这一行 -

for (int j = 0; j >= s1.length; j++)

到此 -

for (int j = 0; j < s1.length; j++)

答案 3 :(得分:2)

你的比较器在for循环中关闭。这可能就是它无法正常工作的原因

if (s.length==s1.length)
{
    System.out.println(s.length);
    for (int i =0 ; i<s.length;i++)
    {
        for (int j =0 ;j<s1.length;j++)
        {
        System.out.println("test");
        if (s[i].equals(s1[j]))
        {
        System.out.println("ok" + s[i]);
        }
        else{
            System.out.println("not ok");
            }
}

答案 4 :(得分:2)

for (int i =0 ; i>=s.length;i++) 

在第一次迭代i=0s.length=3以及i>=s.length将转换为0>=3,这是假的,因此循环不会执行。它应该是i<=s.length

答案 5 :(得分:2)

你想要比较两个字符串数组的长度。如果长度相等,那么将每个第一个字符串数组的值与每个第二个数组的值进行比较。所以你不能使用这个>=来比较长度。< / p>

只需尝试一下

 for (int i =0 ; i<s.length;i++)
    {
        for (int j =0 ;j<s1.length;j++)
        {

答案 6 :(得分:1)

你的循环不正确。尝试

   for (int i=0; i<s.length; i++)
    {
        for (int j=0; j<s1.length; j++)
        {

答案 7 :(得分:1)

for (int i =0 ; i>=s.length;i++)更改为

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

和内循环相同

因为你的第一个条件本身并没有得到满足 i = 0并且您正在检查i&gt; = s.length(在这种情况下意味着3)

所以你的for循环不会被执行