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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @翱翔@ 高级黑马   /  2014-1-27 18:36  /  5127 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

while是否能嵌套if语句

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

18 个回复

倒序浏览
当然可以

这个线程的一段代码,仅供参考
while(true)
                {
                        synchronized(r)
                        {
                                if(x ==0)
                                {
                                        r.name ="张三";
                                        r.sex  ="男";
                                }
                                else
                                {
                                        r.name ="西施";
                                        r.sex = "女";
                                }
                                        x = (x+1)%2;
                        }
                       
                }       

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
果断能啊
回复 使用道具 举报
这个是肯定可以的
回复 使用道具 举报
你为什么会认为不可以呢,能说说你的看法吗
回复 使用道具 举报
透过生活 发表于 2014-1-27 18:53
当然可以

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

while(这里是条件表达式的话)还可以吗
如while(int  x<100){
if(x%2==0){
....}
}
这可以吗?为什麽我这不出结果呢
回复 使用道具 举报
这样也是可以的。。可以把你的代码发下。看看有没有错
回复 使用道具 举报
本帖最后由 @翱翔@ 于 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);
        }

}
回复 使用道具 举报
必须可以
回复 使用道具 举报
那为什麽我这无法输出结果呢
回复 使用道具 举报

代码如下:
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);
        }

}这个程序对不对
回复 使用道具 举报
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:51
13#
本帖最后由 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. }
复制代码


回复 使用道具 举报
谢谢了
回复 使用道具 举报
为什么不可以?肯定可以。。你可以自己写个demo实验下,就好了!
回复 使用道具 举报
while循环里基本都有if判断
回复 使用道具 举报
1、x++后的分号应为英文符号,而在楼主代码中为中文符号;
2、x++应放在if执行语句结束标示的大括号外,即x++不应属于if执行语句。
回复 使用道具 举报
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循环外面就可以了。在具体一点的原理我就不清楚了,希望有大神可以为我们两个解决一下。
回复 使用道具 举报
可以的啊。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马