黑马程序员技术交流社区

标题: for循环的条件语句 [打印本页]

作者: 蒋淑静    时间: 2013-12-14 02:58
标题: for循环的条件语句
本帖最后由 蒋淑静 于 2013-12-14 20:22 编辑
  1. package _2012;

  2. class StringTest1
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 String s1="abcwerthelloyuiodef";
  7.                 String s2="cvhellobnm";
  8.                 getMaxSubString(s1,s2);
  9.         }

  10.         public static String getMaxSubString(String s1,String s2){        
  11.                 String max="";
  12.                 String min="";
  13.                 max=(s1.length()>s2.length())?s1:s2;
  14.                 min=(max==s1)?s2:s1;
  15.                 for(int x=0;x<min.length();x++){
  16.                         for(int y=0,z<min.length()-x;z!=(min.length()+1);y++,z++){
  17.                         String temp=min.substring(y,z);
  18.                         if(max.contains(temp)){
  19.                                 return temp;
  20.                           }
  21.                         }
  22.                
  23.                 }
  24.                 return "";
  25.         }
  26.         
  27. }
复制代码

for循环的条件语句可以这样写吗,我编译时会报错,不知道怎么该,for(int y=0,z<min.length()-x;z!=(min.length()+1);y++,z++)
作者: FFF    时间: 2013-12-14 08:29
同学,你的z的值声明的是什么、
min的值声明的又是什么?
问题问得不够清楚哦~
作者: 落木萧萧    时间: 2013-12-14 09:44
本帖最后由 落木萧萧 于 2013-12-14 09:45 编辑

for语句格式是
for(初始化表达式;   判断表达式;    递增(递减)表达式){
    执行语句;   //一段代码
}

所以是不能把
  1. int y=0,z<min.length()-x;
复制代码

放到一起的。
作者: 何伟超    时间: 2013-12-14 10:01
没有定义Z变量。你应该全贴出来,这样才能知道 原因
作者: 蒋淑静    时间: 2013-12-14 10:48
我把全部的都贴出来了,大家帮忙看看奥
作者: FFF    时间: 2013-12-14 14:54
蒋淑静 发表于 2013-12-14 10:48
我把全部的都贴出来了,大家帮忙看看奥

妹子,你的z的值声明的是什么?还是忘记声明了?
作者: 向阳泪无痕    时间: 2013-12-14 14:59
你仔细看看你的这个for结构 你是这样写的  for(int y=0,z<min.length()-x; z!=(min.length()+1); y++,z++)  看出问题了没,z<min.length()-x  这是一个条件语句不是赋值语句。注意分号位置。
应这样写 for(int y=0;   z<min.length()-x && z!=(min.length()+1);    y++,z++)  就对了。
作者: Silm_Shady    时间: 2013-12-14 16:36
本帖最后由 Silm_Shady 于 2013-12-14 16:37 编辑

顶一个!
作者: 李然    时间: 2013-12-14 16:42
兄弟,最简单理解方法就是:z<min.length()-x返回的是布尔型,并不是对变量z的初始化,所以应该放在for中间的判断表达式部分!
作者: 蒋淑静    时间: 2013-12-14 17:58
FFF 发表于 2013-12-14 14:54
妹子,你的z的值声明的是什么?还是忘记声明了?

是这个样子的就对了,for(int y=0,z=min.length()-x;z!=(min.length()+1);y++,z++);z的初始化错了,谢谢你喽
作者: 蒋淑静    时间: 2013-12-14 17:59
for(int y=0,z=min.length()-x;z!=(min.length()+1);y++,z++);这样就对了,我的z初始化错了,谢谢大家的提醒




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