2014-03-24 249 views
-2

我在我的程序中遇到了“for”循环的麻烦。我得到的主要错误是“类型不匹配:不能从int转换为布尔值。”我想要做的就是打印出相应的“时间”元素。我知道条件需要是“classNames [0] .length”的bool类型,但我无法弄清楚如何做到这一点。谢谢!二维阵列

import javax.swing.JOptionPane; 
import java.util.Scanner; 

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

    int i = 0; 
    String classInput; 

    String[][] classNames = { 
       {"CIS 280", "ACC 212", "HIS 300"}, 
       {"Tue 7:30", "Thu 2:30", "Fri 1:00" } 
      }; 


classInput = JOptionPane.showInputDialog("Please input a class name: "); 


for (i = 0; classNames[0].length; ++i) // problem line 
    if(classNames[0][i].equals(classInput)) 
    { 
     System.out.println("class time:" + classNames[1][i]); 

    } 
} 

}

+0

'类名[0]。长度;'并不意味着什么作为一个条件。你可能想'我

+0

那么,错误是说'classNames [0] .length'不是布尔值。你可能想'我 Pshemo

+0

如果你真的想要将int转换为布尔值,(!= 0)就可以实现。 – nimsson

回答

3

你可能想比较iclassNames[0].length提供必要的boolean说法。只提供classNames[0].length只是一个int

for (i = 0; i < classNames[0].length; ++i) 
3

我想你的意思是:

for (i = 0; i < classNames[0].length; i++) 
0
import javax.swing.JOptionPane; 
import java.util.Scanner; 

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

    int i = 0; 
    String classInput; 

    String[][] classNames = { 
       {"CIS 280", "ACC 212", "HIS 300"}, 
       {"Tue 7:30", "Thu 2:30", "Fri 1:00" } 
      }; 


classInput = JOptionPane.showInputDialog("Please input a class name: "); 


for (i = 0; i<classNames[0].length; ++i) // problem line 
    if(classNames[0][i].equals(classInput)) 
    { 
     System.out.println("class time:" + classNames[1][i]); 

    } 
} 

} 

这将解决你的错误,你只是忘记了我<