黑马程序员技术交流社区

标题: java问题 有什么错误,为什么? [打印本页]

作者: 杨武林    时间: 2013-4-2 13:18
标题: java问题 有什么错误,为什么?
public class PrintChar{
    public static void main(String[] args)  
    {     
            int i,j;      for(i=0;args!='\0';i++)
              {   
                    System.out.println("args");  
                                 for(j=0;j<i;j++)         
                                    System.out.println("*");  
                 }
      }
}

作者: 邵震    时间: 2013-4-2 13:40
完全不懂你在比较什么  你要输出\0是要把0转义?

我觉得你语句选择错误  应该是while进行判断  

而不是用for语句进行循环
作者: 邵震    时间: 2013-4-2 13:47
\0在ascll编码表里代表的就是空格  所以你的判断根本不成立
作者: 打工人    时间: 2013-4-2 14:09
{:soso_e117:}

第一个for语句的判断语句改成 args!=null;就行了 ,但是是无限循环的。。。你想要做什么呢

作者: 庞立森    时间: 2013-4-2 19:14
你这里面的
for(i=0;arges!="10";i++)
你要比较字符串内容你要用equals,=在java里面是赋值操作,而不是比较操作,==在java里面才是比较运算符
你的arges 根本没有赋值,怎么比较呢
建议你去看一下运算符那块,
作者: 贺靖轩    时间: 2013-4-2 19:28
先说你想干什么吧 ,不理解你的战略意图。
作者: 王川    时间: 2013-4-2 20:56
你这个……args是字符串数组,你拿来和一个字符比较,不知道你想表达一个什么意思
作者: 夏凡    时间: 2013-4-2 21:32
args  是被定义成String [] 类型的  也就是字符串数组  所以你代码里面的 args != '\0'本身就是错误的。
按你的意思应该写成:null != args


作者: 陈丽莉    时间: 2013-4-2 21:50
本帖最后由 陈丽莉 于 2013-4-2 21:55 编辑

是要判断args的长度么? 应该是学了c语言的后遗症,可以将for循环第一行改成
  1. for(i=0;args[i]!='\0';i++)
复制代码
不过话说,java中是有现有函数的,args.length()就能直接调用长度了~
若还有问题,继续追问,没有的话,将帖子改成【已解决】哦~

作者: 田光峰    时间: 2013-4-3 11:59
public class PrintChar{
    public static void main(String[] args)  
    {     
            int i,j;      for(i=0;args!='\0';i++)
              {   
                    System.out.println("args");  
                                 for(j=0;j<i;j++)         
                                    System.out.println("*");  
                 }
      }
}


args 是String[] 类型 你没有给他值 应该是null ,for循环中的args!='\0'是错误的表达方式 。
作者: 朱晓杰    时间: 2013-4-3 13:13
第一:for(初始化表达式;循环条件表达式;循环后的操作表达式){}
         循环条件表达式的值是  false 或者  true
第二:args 数据类型为引用类型 数组,而'\0' 数据类型为 基本类型 字符型,两者不能用 != 比较,要判断 args是否为空,应该这样写:  args != null
第三:根据你的需求,我把自己的代码贴上供参考
public class PrintChar {
        public static void main(String[] args) {
                 int i,j;     
                 for(i=0;args != null;i++)
                 {   
                       System.out.println("args");  
                       for(j=0;j<i;j++)         
                       System.out.println("*");  
                 }        
         }
}


作者: 朱晓杰    时间: 2013-4-3 13:18
补充一句,lz那样写会编译失败,以下是错误信息
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        Incompatible operand types String[] and char
两种类型不能互相操作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2