当前位置:文档之家› Java选择语句

Java选择语句

一、Java选择语句
1.if
if(condition) statement1;
else statement2;

其中语句(statement)可能是一条单独的语句,也可能是位于花括号中的代码块。

条件(condition)是返回一个boolean值的逻辑表达式。
if执行过程:如果条件(condition)为真,就执行语句1(statement1),否则就执行语句2(statement2)(如果它存在)

int flag = 1;
if (flag) {
System.out.println("flag为真");
} else {
System.out.println("flag为假");
}
//报错,java与c是不同的,1和0不能代替 true和false

else 子句为可选。
int i =5;
if (i>1) {
System.out.println("i大于1");
}


if-else if
if (condition) statement;
else if (condition) statement;
else if (condition) statement;
...
else statement;
这个if语句自顶向下开始执行,只要一个if的条件为真,就执行与该if相关联的语句,然后跳过其余部分。
如果执行所有条件为假,则执行else中的语句。

会打印出信息么?
if(false)
System.out.println("line 1");
System.out.println("line 2");

比较一下a代码段和b代码段
a.
int salary = 1000;
if (salary <500) {
System.out.println("工资小于500");
}
if (salary >= 500 && salary <1000) {
System.out.println("工资大于500小于1000");
}
if (salary >= 1000) {
System.out.println("工资大于1000");
}

b.
int salary = 1000;
if (salary < 500) {
System.out.println("工资小于500");
} else if (salary>=500 && salary<1000) {
System.out.println("工资大于500小于1000");
} else {
System.out.println("工资大于1000");
}

2.switch 多路分支语句
switch (expression) {
case value1:
statement;break;
case value2:
statement;break;
case value3:
statement;break;
default:
statement;
}

表达式expresion必须是byte short int char或枚举类型
每个case值必须是与expression兼容的类型,而且必须是常量

break语句是可选的,如果省略了break语句,程序会继续执行下一个case语句

switch(month) {
case 1:
case 3:
case 5:
System.out.println("大月");break;
case 2:
case 4:
case 6:
System.out.println("小月");break;
}

练习:
1.以下那些代码是合法的
a.
float x = 1;
switch(x) {
case 1:
System.out.println("print 1");
}
//错误 表达式必须是byte short int char类型
b.
long y =1;
switch(y) {
case 1:
System.out.println("print 1");
}
//错误 表达式必须是byte short int char类型
c.
int x = 1;
int c = 1;
switch (c) {
case x:
System.out.println("print 1");
}
//错误 case值必须是常量
d.
byte x=1;
switch(x) {
case 1/1:
System.out.println("print 1");
}
//正确

e.
short x = 1;
switch (x) {
case 3.2/3:
System.out.println("print 1");
}
//错误 每个case值必须是与表达式兼容的类型



2.运行一下代码,将得到什么打印结果?
int i = 1;
switch (i) {
default:
System.out.println("default");
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}


二、java迭代语句 (循环)
循环的作用是反复执行一段代码,直到不满足条件为止。循环语句一般分为一下四个部分:
a.初始化部分
b.循环条件
c.循环体
d.迭代部分

1.for循环
for (初始化部分;循环条件;迭代部分){
循环体;
}

for语句执行时,先执行初始化部分,然后判断循环条件,再执行循环体。

a.for循环初始化变量的作用域
for (int i=0; i<10; i++)
System.out.println(i);
System.out.println(i);//Error

for语句内声明的变量的作用域为当前for语句,不能在for语句以外的地方使用它

int i = 0;
for (; i<10; i++){
System.out.println(i);
}
System.out.println(i);

b.在初始化部分和迭代部分可以使用逗号语句。
//反转数组元素
pubilic int[] inverse(int[] oldArray){
int [] newArray = new int[oldArray.length];
for (int i=0, j=oldArray.length-1; inewArray[j] = oldArray[i];
}
return newArray;
}

练习:
下面语句那些是对的那些是错的
a.
int i;
for (i=5, int j=10; i<10; j--) {...}
//错误i=5, int j=10为不合法的声明语句

b.
int i,j;
for (i=5, j=10; i<10, j>0; i++,j--) {...}
//错误 循环条件i<10,j>0为不合法的布尔表达式

c.
int i,j;
for (i=0; j=0; i<10;i++,j--){...}
//错误i=0; j=0为不合法初始化语句

d.
int i,k;
for (i=0,k=9; (i<10 && k>0); i++,k--) {...}
//正确

2.while循环
初始化部分;
while (循环条件) {
循环体;包括迭代部分;
}

循环条件可以是任何布尔表达式。只要循环条件为真,循环体就被执行。
当循环条件为假时,则不进行循环。
//返回数组中最大元素
public int max(int[] array) {
int index = 1;
int location = 0;
while (index < array.length) {
if (array[location] < array[index]) {
location = index;
}
index++;
}
}

3.do-while循环
初始化部分;
do {
循环体;包括迭代部分;
} while(循环条件);

do-while语句首先执行循环体,然后再判断循环条件,如果循环条件为真,执行下一次循环,为假跳出循环。
while循环 和 do-while循环的区别:
在任何情况下,do-while语句都会至少执行一次。

4.无限循环的写法
for(;;){
//some code here
}

while(true){
//some code here
}

三、流程跳转语句
break 退出本层循环
continue 跳出本次循环或者说进入下一轮循环
return 结束当前方法

使用while循环计算

出1到100的所有奇数之和
int a = 1;
int result = 0;
while (true) {
if (a%2 == 0) {
a++;continue;
}
result += a;
a++;
if (a >= 100) break;
}

相关主题
文本预览
相关文档 最新文档