Java流程控制语句
True和False
Java中不允许讲一个非布尔(boolean)类型的的变量当做布尔值使用,虽然C和C++中可以(True=非零,False=0),若想在布尔测试中使用一个非布尔值,比如if(a)中,那么必须要加上一个条件表达式将其转化成布尔值 ,例如if(!=0)
If-else
if-else是控制流程的最基本形式
if(Boolean-expression)
statement
若if后面扩后内boolean值为True则执行statement,statement是指用分号分开的的单句,或符合语句,复杂句应被扩在大括号中
If(Boolean-expression){
……..;
……..;
}
使用if-else判断两数字是大于小于或等于
public class IfElse{
static int result = 0;
static void test(int testval,int target){
if(testvlal>target)
result = +1;
else if(testval<target)
result = -1;
else
result = 0; //相等
}
public static void main(String [] args){
test(10,5);
System.out.println(result);
test(5,10);
System.out.println(result);
test(5,5);
System.out.println(result);
}
}
输出
1
-1
0
上例中的else if的意思是在else后紧跟一个if语句。
迭代语句
Java流程控制中while,do-while,for用来控制循环,有时将他们划分为迭代语句(iteration statement)。用大括号扩住需要重复执行的语句,被扩住的语句会一直重复执行,直到起控制作用的布尔表达式(Boolean-expression)得到False的结果为止。
while
while的循环格式如下
while(Boolean-expression)
statement;
循环开始时,会判断一遍布尔表达式的值,如果为True执行语句,迭代后会从新判断布尔值,直到为false,循环结束。
下面的例子是判断生成的随机数是否符合条件
public class WhileTest{
static Boolean condition(){
Boolean result=Math.random() < 0.99;
System.out.print(result+”.”);
return result;
}
public static void main(String [] args){
while(condition())
System.out.print(“循环中 ‘while”);
System.out.print(“退出 ‘’while”);
}
}
}
condition()方法里面用到了Math库里面的static(静态)方法random(),该方法的作用是产生0和1之间(包括0,但不包括1)的一个double值。result的值是通过比较操作符<而得到的,这个操作符将产生boolean类型的结果
do-while
do-while的格式如下:
do
statement
while(Boolean-expression);
区别于while循环,do-while循环至少会循环一次,比如循环开始时布尔值就为false,while循环会直接停止循环,而do-while会循环一次。
for
for循环是三种循环中最常用到的迭代形式,这种循环在第一次迭代之前要进行初始化。随后,它会进行条件测试,而且在每一次迭代结束时,进行某种形式的”进步”。for循环的格式如下
for(initialization;Boolean-expression;step)
statement
初始化(initialization)表达式,布尔表达式(Boolean-expression),或者进步(step)运算都可以为空。但是表达式后面的”;”不可以不写。每次迭代前会测试布尔表达式。若获得的结果是true,就会执行for语句后面的代码行。每次循环结束,会执行一次进步
for循环常用于执行”计数”任务:
public class ListCharacters{
public static void main(String [] args){
for(char c=0;c<128;c++)
if(Character.isLowerCase(c))
System.out.println(“value: ”+(int)c+” character: ” + c);
}
}
输出:
value: 97 character : a
value: 98 character : b
.
.
.
变量c是在程序用到它的地方被定义的,也就是在for循环的控制表达式里,而不是在main()开始的地方定义的。c的作用域就是for控制的表达式的范围内。
Character是char类型的包装类isLowerCase()方法是判断是否为小写