黑马程序员技术交流社区

标题: while是否能嵌套if语句 [打印本页]

作者: @翱翔@    时间: 2014-1-27 18:36
标题: while是否能嵌套if语句
while是否能嵌套if语句
作者: 透过生活    时间: 2014-1-27 18:53
当然可以

这个线程的一段代码,仅供参考
while(true)
                {
                        synchronized(r)
                        {
                                if(x ==0)
                                {
                                        r.name ="张三";
                                        r.sex  ="男";
                                }
                                else
                                {
                                        r.name ="西施";
                                        r.sex = "女";
                                }
                                        x = (x+1)%2;
                        }
                       
                }       
作者: 李乾    时间: 2014-1-27 20:46
果断能啊
作者: 廉伟杰    时间: 2014-1-27 21:15
这个是肯定可以的
作者: air    时间: 2014-1-27 22:08
你为什么会认为不可以呢,能说说你的看法吗
作者: @翱翔@    时间: 2014-1-27 22:30
透过生活 发表于 2014-1-27 18:53
当然可以

这个线程的一段代码,仅供参考

while(这里是条件表达式的话)还可以吗
如while(int  x<100){
if(x%2==0){
....}
}
这可以吗?为什麽我这不出结果呢
作者: 透过生活    时间: 2014-1-28 08:14
这样也是可以的。。可以把你的代码发下。看看有没有错
作者: @翱翔@    时间: 2014-1-28 11:50
本帖最后由 @翱翔@ 于 2014-1-28 14:40 编辑

代码如下:
public class SumDemo {
        public static void main(String[] args) {
                int sum = 0;
                int x = 1;
                while(x<100){
                        if(x%2==0){
                                sum=sum+x;                                 x++;
                        }
                }
                System.out.println(sum);
        }

}

作者: 彭亚军    时间: 2014-1-28 11:55
必须可以
作者: @翱翔@    时间: 2014-1-28 13:22
那为什麽我这无法输出结果呢
作者: @翱翔@    时间: 2014-1-28 14:42

代码如下:
public class SumDemo {
        public static void main(String[] args) {
                int sum = 0;
                int x = 1;
                while(x<100){
                        if(x%2==0){
                                sum=sum+x;
                                         x++;
                        }
                }
                System.out.println(sum);
        }

}这个程序对不对
作者: @翱翔@    时间: 2014-1-28 15:02
class SumDemo {
        public static void main(String[] args) {
                int sum = 0;
                int x = 1;
                while(x<100){
                        if(x%2==0){
                                sum=sum+x;
                                               x++;
                        }
                }
                System.out.println(sum);
        }

}这样有没有问题
作者: lriu    时间: 2014-1-28 15:09
本帖最后由 lriu 于 2014-1-28 15:16 编辑

你那代码明显是一个死循环,x的值始终是1,。
要是计算100以内偶数的和,可以参考一下代码:1、使用while循环:
  1. int sum = 0;
  2.                   
  3. int x = 1;
  4.                   
  5. while(x < 100) {
  6.          if (x % 2 == 0) {
  7.                 sum += x;
  8.          }
  9.                           
  10.        x++;
  11. }
  12.                   
  13. System.out.println("sum = " + sum);
复制代码

2、使用for循环
  1. int sum = 0;
  2.                   
  3. for (int i = 1; i < 100; i++) {
  4.           if (i % 2 == 0)
  5.                  sum += i;
  6. }
复制代码



作者: @翱翔@    时间: 2014-1-28 19:06
谢谢了

作者: 黑马19我最牛    时间: 2014-2-5 20:04
为什么不可以?肯定可以。。你可以自己写个demo实验下,就好了!
作者: 一年_Hei    时间: 2014-2-6 19:14
while循环里基本都有if判断
作者: 孔丽阁    时间: 2014-2-8 14:23
1、x++后的分号应为英文符号,而在楼主代码中为中文符号;
2、x++应放在if执行语句结束标示的大括号外,即x++不应属于if执行语句。
作者: 追逐    时间: 2014-3-14 15:47
public class SumDemo {
        public static void main(String[] args) {
                int sum = 0;
                int x = 1;
                while(x < 100){
                        if(x % 2 == 0){
                                sum = sum + x;                                 
                        }       
                        x++;
                }
                System.out.println(sum);
        }
}


这应该是一个作用域的问题。把x++放到if循环外面就可以了。在具体一点的原理我就不清楚了,希望有大神可以为我们两个解决一下。
作者: 臭豆腐    时间: 2014-6-20 15:28
可以的啊。。




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