黑马程序员技术交流社区

标题: 关于语句 [打印本页]

作者: 郭娇珍    时间: 2012-12-24 12:30
标题: 关于语句
本帖最后由 郭娇珍 于 2012-12-24 13:14 编辑

求100~500之间所有不能被3、5、7、11和13同时整除的整数的和。
class Demo
{
public static void main(String[] args)
{
  int sum =0;
  for (int x = 100;x<=500; x++)
  {
   if (x%3==0&x%5==0&x%7==0&x%11==0&x%13==0)
   {
    System.out.print();
   }
   else
   {
    sum = x+sum;
   }
   
  }
  System.out.println("sum="+sum);
}
}
请问if语句后该怎么写呢,这个错了

作者: 王亚运    时间: 2012-12-24 12:36
本帖最后由 王亚运 于 2012-12-24 12:45 编辑

continue

继续下一次循环。
参见,continue和break 用法

貌似你判断错了
应该是:
if (x%3==0||x%5==0||x%7==0||x%11==0||x%13==0)
作者: 郑广昌    时间: 2012-12-24 12:54
class tt
{
        public static void main(String[] args)
        {
                int sum=0;
                for(int x=100;x<=500;x++)
                {
                        if(x%3==0&x%5==0&x%7==0&x%11==0&x%13==0)
                        {       
                                System.out.println(x);
                        }
                        else{
                                sum+=x;}
                       
                }
                System.out.println(sum);
        }
}

我运行 了啊,没错啊!

D:\Program Files\Java\test>javac tt.java

D:\Program Files\Java\test>java tt
120300
作者: 郭娇珍    时间: 2012-12-24 13:02
{:soso_e189:}原来跟例子是一样的{:soso_e163:}{:soso_e163:}{:soso_e163:}
作者: 周亮    时间: 2012-12-24 13:08
楼上的代码运行是错误的
class Demo
{
public static void main(String[] args)
{
  int sum =0;
  for (int x = 100;x<=500; x++)
  {
          sum+=x;
  }
  System.out.println("sum="+sum);
}
}
你的代码相当于是求出100到500的和,另外题目没有要求打印能被3,5,7,11整除的数
应该这么写
class Demo
{
public static void main(String[] args)
{
  int sum =0;
  for (int x = 100;x<=500; x++)
  {
          sum+=x;
          int n=0;
          if(x%3==0||x%5==0||x%7==0||x%11==0||x%13==0){
                n+=x;
          }
          sum=sum-n;
  }
  System.out.println("sum="+sum);
}
}
在这个里面我引入了一个变量,先求出100到500的和,当某个数字能被13,7,5,3整除的时候,求出这些能被整除的数的和,然后相减得到的就是楼主想要的效果了
另外判断语句里面的条件应该是或的关系,写成&,那就意味着必须能够被这几个数同时整除,所以判断条件也是错的

作者: 周亮    时间: 2012-12-24 13:10
不好意思啊,看错条件了,应该把||改成&,实在抱歉
作者: 郭娇珍    时间: 2012-12-24 13:11
郑广昌 发表于 2012-12-24 12:54
class tt
{
        public static void main(String[] args)

你把500换成500000,打印结果就会有好多个了,思路不对
作者: 郭娇珍    时间: 2012-12-24 13:13
周亮 发表于 2012-12-24 13:10
不好意思啊,看错条件了,应该把||改成&,实在抱歉

:)没事,一起学习
作者: 谢辉林    时间: 2012-12-24 13:31
代码是正确的
作者: 张综    时间: 2012-12-24 13:58
public class A {
        public static void main(String[] args) {
                int sum=0;
                for (int i = 100; i < 501; i++) {
                        if((!(i%3==0))&&(!(i%5==0))&&(!(i%7==0))&&(!(i%11==0))&&(!(i%13==0))){
                                sum+=i;
                                }
                               
        }
                System.out.println(sum);
}
}

作者: 杨建聪    时间: 2012-12-24 15:15
class Demo
{
    phblic static void main(String[] args)
      {
        int sum=0;
        for(int x=100;x<=500;x++)
           {
              if(x%3!=0 && x%5!=0 && x%7!=0 && x%11!=0 && x%13!=0)//&&是逻辑运算符,结果是boolean型,&是算数运算符,是给变量赋值的
                 sum+=x;
           }
                 System.out.println("sum="+sum);
      }
}




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