黑马程序员技术交流社区
标题:
关于while的用法?
[打印本页]
作者:
橸瑩膤漃寞林
时间:
2014-4-13 21:10
标题:
关于while的用法?
本帖最后由 橸瑩膤漃寞林 于 2014-4-15 13:54 编辑
public class ThisLockDemo {
public static void main(String[] args) {
Ticket2 t = new Ticket2();
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
t1.start();
try {
Thread.sleep(10);
} catch (Exception e) {
// TODO: handle exception
}
t.flag = false;
t2.start();
}
}
class Ticket2 implements Runnable{
private int tick = 100;
boolean flag = true;
public void run() {
if (flag) {
//为什么用while,为什么括号里是true ,而不能写false
while(true){
synchronized (this) {
if (tick>0) {
try {
Thread.sleep(10);
} catch (Exception e) {
}
System.out.println(Thread.currentThread().getName()+"......code...."+tick--);
}
}
}
}
else
while(true)//为什么用while
show();
}
public synchronized void show(){
if (tick>0) {
try {
Thread.sleep(10);
} catch (Exception e) {
}
System.out.println(Thread.currentThread().getName()+"......show...."+tick--);
}
}
}
作者:
ソi苆僞lè袮
时间:
2014-4-13 21:18
因为条件为TRUE才会进入循环,false的话写的循环就没有意义了。一般条件是一个判断,true的话进入循环,否则就跳过循环了
作者:
東少
时间:
2014-4-13 21:30
while循环特点: 先判断表达式 若为true就执行循环体,否则跳过循环体
作者:
赵连明
时间:
2014-4-13 21:33
while(true)是为了进入循环.
而且你问的好像不是重点,这里2个while(true)都是单纯的循环.
这代码的主要是就synchronized 的使用就是锁进程.
你还你这代码有问题.真这样写CUP就等悲剧吧.
作者:
周建岐
时间:
2014-4-13 22:06
while 表示的是循环 如果while中表达式的值为true则执行循环体内的代码 如果是false则不执行循环体内的代码 此代码中while的作用是只是起到循环的作用 但是如果while中的值总为true 而且没有跳出循环的语句的话 就会产生无限循环 这点要注意 可以用break跳出
作者:
skyfly
时间:
2014-4-14 00:16
本帖最后由 skyfly 于 2014-4-14 00:25 编辑
请用你稍微想一想,既然知道永久为false,你写的循环里边的代码能执行得到吗,换句话说你写得循环体代码有意义吗?
while() 括号里必须是boolean类型,可以是表达式,可以是不等式,可以是值,表达式有x > y、x == y、x && y、x || y;
例如如:while(true); whild(a=b+c); while(a<b);
1.while一般用于不清楚需要循环多少次的情况下 。
2.能用for循环的语句,必定也能换成while。
3.但是for循环优点在于,语句运行完后会释放空间,
4.而while语句运行完后是没有释放的,要等到全部运行结束后。
作者:
Emperors
时间:
2014-4-14 01:22
while语句的一般形式为:
while(表达式) 语句
其中表达式是循环条件,语句为循环体。
while先判断while中的表达式结果是否为true,true则执行循环体,执行结束之后再次判断,如果表达式结果为false则跳出循环。
while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。
使用while语句应注意以下两点。
1、 while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
2、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
作者:
曹冬明
时间:
2014-4-14 09:42
while循环只能接受true和false两个参数,传入true循环会一直执行,false就不会执行,除非你传入一个boolean变量控制while循环的执行与停止,否者你直接传入一个false,毫无意义,因为循环内部的代码变成了没有用的代码
作者:
Linuxgg
时间:
2014-4-14 10:29
如果非要出现false的字样,可以这么用:
while(!false)
...这么写,感觉莫名的蛋蛋的忧伤。。。
作者:
沫然
时间:
2014-4-14 16:08
while循环
格式如下:
初始化部分;
while(判断部分){
循环体部分;
迭代部分;
}
其中初始化部分和迭代部分可以没有。如果有初始化部分,程序先执行初始化部分,再执行判断部分,如果为真值,则执行红色显示的部分(即执行循环体部分,如果有迭代部分,执行迭代部分),然后再执行判断部分,如果为真值,再执行红色显示的部分,直至判断部分运算的结果为假值结束循环
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2