A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘一阳 中级黑马   /  2014-6-11 23:36  /  1942 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int y=0;
                                for(int x=1;x<=100;x++)
                                {
                                        if(x%7==0)
                                        y++;
                                    
                                }
这样是可以的
把if中的条件直接放到for中可以吗?
即for(int x=1;x<=100,x%7==0;x++)
为什么不可以?

22 个回复

倒序浏览
for循环中第二个表达式必须是bool表达式,即必须能判断true or false。x<=100,x%7==0;这样写不是表达式,肯定也不是bool表达式
回复 使用道具 举报
你好,不可以的。流程语句最重要的就是要记住格式!for循环的格式是:for(初始化表达式;循环表达式;循环后的操作表达式) 表达式中可以不限定形式,但是一定要是合法语句,你写的这个表达式x%7 == 0; java虚拟机读到这句话时都不知道是什么意思,就会报错,希望能帮到你:)
回复 使用道具 举报
for循环语句的语法格式如下: 
  for(初始化语句;循环条件;迭代语句){ 
  语句序列 
  } 
  其中循环条件的结果为boolean类型,也就是说其结果只能是true或false。 把两条语句放在一起怎么判断真假?所以不能那样写。
回复 使用道具 举报
这是规定,第二项的值是TRUE 或false ,即比较
回复 使用道具 举报
还是没懂  脑子转不开   “==”不就是比较是否相等的吗?相等的话不就是ture 不相等不就是false?
回复 使用道具 举报
楼主你好,就你的代码看来你是想要得出能被7整除的100以内的整数有多少个。就你的思路而言,x%7==0是可以放在for循环里边的,可是它与x<=100需要用&&来连接,意思是x需要小于0,并且x要能被7整除才能满足循环条件。具体实现代码如下:
                for(int x=1; x<=100 && x%7==0 ;x++){
                        y = 0;
                        y++;
                }
最后运行的结果跟你之前的代码是一样的。希望能帮到你。
回复 使用道具 举报 1 0
懂了  这样就对了 它们单独拿出来执行应该都是bool   放到一起就无法判断  我没看到重点   谢谢你:loveliness:
回复 使用道具 举报
七楼正解~
回复 使用道具 举报
7楼的,你的循环都没法开始啊,第一次判断就是 false  就终止了。。。。。
楼主  x%7==0;是一个条件语句,但是考虑实际情况,for语句的判定条件一旦出现FALSE就会终止循环的,同时,for语句不允许出现多个判定条件,你给出两个条件,虚拟机不知道去用哪一只了
回复 使用道具 举报
╭月牙湾湾╮ 发表于 2014-6-12 01:41
楼主你好,就你的代码看来你是想要得出能被7整除的100以内的整数有多少个。就你的思路而言,x%7==0是可以放 ...

我刚才还点了支持的,发现你这句式有问题啊,你真的有运行过吗?运行了结果为0.而且循环体就有问题啊,y=0; 出掉。出掉后还有问题,你这循环条件根本就有问题要不你测试一下         
        int y = 0;
            for(int x=1; x<=100 && x%7==0 ;x++){
             y++;
             System.out.println("a");
     }
            a根本就不打印
回复 使用道具 举报
确实啊  昨天没试  今天试了一下确实为0    不过我想通了为什么不能加这个条件了  谢谢各位了
回复 使用道具 举报
不去会死 发表于 2014-6-12 10:03
我刚才还点了支持的,发现你这句式有问题啊,你真的有运行过吗?运行了结果为0.而且循环体就有问题啊,y= ...

真不好意思,是我粗心了。昨天我确实有运行过,但是是和if语句一起运行的,我就打印了y的值,看到是正确的就回复了。现在回头看了一下,这样写for循环的条件确实为false。谢谢你指出我的问题。
回复 使用道具 举报
24岁??? 发表于 2014-6-12 09:57
7楼的,你的循环都没法开始啊,第一次判断就是 false  就终止了。。。。。
楼主  x%7==0;是一个条件语句, ...

真不好意思,我误导了楼主,我有罪。。。这样写for循环的条件确实为false。谢谢你指出我的问题。
回复 使用道具 举报
刘一阳 发表于 2014-6-12 11:30
确实啊  昨天没试  今天试了一下确实为0    不过我想通了为什么不能加这个条件了  谢谢各位了 ...

对不起啊楼主,我粗心了。希望楼主的学习之路一路顺畅!
回复 使用道具 举报
看模糊了的样子
回复 使用道具 举报
我觉得不可以,java中根本就没有这种格式的啊。你这样写程序能识别吗?
回复 使用道具 举报
╭月牙湾湾╮ 发表于 2014-6-12 01:41
楼主你好,就你的代码看来你是想要得出能被7整除的100以内的整数有多少个。就你的思路而言,x%7==0是可以放 ...

class ForforTest4
{
        public static void main(String[] args)
        {
                int y=0;
                for(int x=0;x<100&&x%7==0;x++)
                {
                        y++;
                }
                System.out.println(y);
        }
}
这个的结果是1
回复 使用道具 举报
姿_`态 发表于 2014-6-12 13:05
class ForforTest4
{
        public static void main(String[] args)

是的,是我弄错了。
回复 使用道具 举报
首先 记住 for循环表达式格式   :  for(初始化表达式;循环表达式;循环后的操作表达式)

按照楼主的意思,最好的办法是改成下面这样
class ForforTest4
{
        public static void main(String[] args)
        {
                int y=0;
                for(int x=0;x<100&&x%7==0;x++)
                {
                        y++;
                }
                System.out.println(y);
        }
}

最后输出的结果是1,为什么呐,因为中间是循环表达式,他的值是boolean类型的,true就循环,false就不循环
x<100&&x%7==0
首先x=0   左边满足,右边也满足,执行y++  所以y=1
第二次循环  x=1  x%7!=0所以不满足,退出,所以最后y=1;

所以 这样不行,最好的办法,就是在for循环里加一个if判断。


回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马