条件语句
条件语句是JAVA中控制程序流程最基本的形式,包括if-else、if-else-if两个语句。
if-else
if-else用中文就是如果-否则,即如果满足指定条件将执行一个流程,否则将执行另外一个流程。else语句是可选的,即只使用if语句也是可以的。
if-else-if
if-else语句与if的连续使用,即是如果怎样-否则怎样-如果又则有-否则又怎样-如果…
条件表达式
所有的条件语句都是由条件表达式的值(结果)来确定,其结果要么为ture要么为false,即boolean类型的值。
条件语句的基本结构如下
//if
if([条件表达式]){
[语句块]
}
当语句块中只有一条执行语句时可以省略大括号(不推荐这么做),即:
if([条件表达式])
[执行语句]
//if-else
if([条件表达式]){
[语句块]
}else{
[语句块]
}
//同样,只有一条执行语句时可以省略大括号
if([条件表达式])
[执行语句]
else
[执行语句]
//if-else-if
if([条件表达式]){
[语句块]
}else{
[语句块]
}if([条件表达式]){
[语句块]
}
具体代码实现:
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int a = random.nextInt(4);
int b = random.nextInt(4);
int c = random.nextInt(4);
System.out.println("a:" + a);
System.out.println("b:" + b);
System.out.println("c:" + c);
if(a == b){
System.out.println("a等于b");
}else if(a == c){
System.out.println("a等于c");
}else{
System.out.println("a与谁都不相等");
}
if(a > c){
System.out.println("a大于c");
}else if(a > b){
System.out.println("a大于b");
}else{
System.out.println("a可能是0或1");
}
}
}
Random类是JAVA中专门用来生成随机数的类,nextInt用来生成指定范围的int型整数,上面例子中参数4代表随机生成0~3的整数。即a,b,c三个局部变量的值在0到3之间。
一次的运行结果:
a:1
b:0
c:0
a与谁都不相等
a大于c
另外一次的运行结果:
a:1
b:3
c:1
a等于c
a可能是0或1
逻辑操作符在条件表达式中的使用
改写以上例子:
....
if(a != b && a != c){
System.out.println("a与谁都不相等");
}else if(a == b){
System.out.println("a等于b");
}else{
System.out.println("a等于c");
}
if(a == 0 || a == 1){
System.out.println("a可能是0或1");
}else if(a > c){
System.out.println("a大于c");
}else if(a != c){
System.out.println("a是2、c是3");
}else{
System.out.println("a等于c");
}
....
一次的运行结果
a:2
b:3
c:3
a与谁都不相等
a是2、c是3
迭代语句
迭代语句即满足指定条件的情况下,重复迭代的执行同样的语句块。
while
语句格式:
while(条件表达式){
[语句块]
}
while(条件表达式)
[执行语句]
while语句会在执行前,检查条件表达试的值是否为true,如果为true就会执行语句块的语句,执行完成后又会重新检查检查条件表达试的值是否为true,循环以往,直到条件表达试的值为false则循环结束。
public class Main {
public static void main(String[] args) {
int a = 0;
System.out.println("循环开始");
while(a < 10){
System.out.println("a = " + a);
a++;
}
System.out.println("循环结束");
}
}
输出结果:
循环开始
a = 0
a = 1
a = 2
a = 3
a = 4
a = 5
a = 6
a = 7
a = 8
a = 9
循环结束
do-while
语句格式:
do{
[语句块]
}while(条件表达式);
do-while和while唯一的区别就是先执行语句块再检查条件表达试的值是否为true,也就是说,do-while无论条件表达式是否为true,总会执行一次。注意while语句后面要加上分号。
public class Main {
public static void main(String[] args) {
int a = 2;
System.out.println("循环开始");
do{
System.out.println("a = " + a);
a++;
}while(a < 2);
System.out.println("循环结束");
}
}
输出结果如下:
循环开始
a = 2
循环结束
for
for循环应该是JAVA中最常用的循环语句,它实际上是对while循环的一种优化,我们上面在用代码演示while循环的例子时,对一个是从0加到10为止,向这样类似的循环使用情况出现的比较多,基本步骤一般都是,先给一个变量初始化值,然后给定循环条件,这个值要在一定范围之内,每次循环完成后将该值加1,即指定循环N次。因此,用for循环可以这么写:
public class Main {
public static void main(String[] args) {
int n = 10;
System.out.println("循环开始");
for(int i = 1; i <= n; ++i){
System.out.println("这是第" + i + "次循环");
}
System.out.println("循环结束");
}
}
执行结果:
循环开始
这是第1次循环
这是第2次循环
这是第3次循环
这是第4次循环
这是第5次循环
这是第6次循环
这是第7次循环
这是第8次循环
这是第9次循环
这是第10次循环
循环结束
其中n指定循环的次数,我们可以看到for语句括号里面的分为三个部分,对变量的定义、循环执行条件表达式、循环执行完成后的操作部分,各部分由分号隔开。
逗号操作符
for循环的变量定义部分和每次循环后的操作部分,可以一次初始化多个变量,以及多个操作,其之间用逗号隔开。
public class Main {
public static void main(String[] args) {
System.out.println("循环开始");
for(int i = 1, j = i * 2; i <= 5; ++i, j = i * 2){
System.out.println("i = " + i + " j = " + j);
}
System.out.println("循环结束");
}
}
输出结果
循环开始
i = 1 j = 2
i = 2 j = 4
i = 3 j = 6
i = 4 j = 8
i = 5 j = 10
循环结束