Java关键字—程序控制
for、while、do..while、switch
break、continue、if、else、case
default、instanceof、return、assert
循环
for循环
for循环分为增强for循环一般for循环
一般for循环格式:
for(初始化变量只执行一次;进入循环所判断的变量;变量的变化){
循环体;
}
简单的for循环运用
public class Demo {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
//也可以如下,去掉for括号内前后的元素
int j = 0;
for (; j < 3; ) {
System.out.println(j);
j++;
}
//当然也可以全部去掉
j = 3;
for (; ; ) {
System.out.println(j);
j--;
if (j < 0) {
break;
}
}
}
}
增强for循环格式:
for(数据类型 变量名 : 需要遍历的对象){
//循环体,变量即元素
}
增强for循环就是为了简化数组的集合的遍历
public class Demo {
public static void main(String[] args) {
//增强for循环
int[] a = {0, 1, 2, 3};
for (int i : a) {
System.out.println(i);
}
}
}
break和continue
break
在循环中,意为终止循环,但是只能终止一层循环,默认情况下是终止距离break最近的循环
continue
是在循环中体现的,当循环时遇到continue语句时,意为跳过当次循环体之下的语句,执行下一次循环
public class Demo {
public static void main(String[] args) {
//break终止整个循环体
for (int i = 0; i < 4; i++) {
if (i == 2) {
break;
}
System.out.println(i);
}
System.out.println("-------------");
//continue是结束此次循环,然后执行下次循环
for (int i = 0; i < 4; i++) {
if (i == 2) {
continue;
}
System.out.println(i);
}
}
}
while循环
格式:
while(条件判断){
代码块;
}
public class Demo {
public static void main(String[] args) {
int a = 0;
while (a < 5) {
System.out.println("a=" + a);
a++;
}
}
}
do…while循环
do{
语句块;
}
while(条件判断)
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char c;
do {
System.out.println("输入一个符号,我将判断它是否为小写字母");
c = input.next().charAt(0);//输入字符
} while (c > 96 && c < 123);
//因为'a'到'z'对应的ASCII码值是97到122
//输入正确时,循环继续循环,不对时,则直接退出循环
}
}
判断
if(条件){表达式}else{表达式}
判断的意思就是,条件成立就执行if,如不是,则执行else
if…else…又可以分为以下四种
if(条件){表达式}
if(条件){表达式1} else {表达式2}
if(条件1){表达式1} else if(条件2){表达式2} … else if(条件n){表达式n}
if(条件1){表达式1} else if(条件2){表达式2} … else if(条件n){表达式n} else { }
public class Demo {
public static void main(String[] args) {
int x = 10;
if (x > 5) {
System.out.println("表达式1");
} else if (x > 6) {
System.out.println("表达式2");
}
//遇到这种情况,代码是从上到下依次执行的,所以当判断出x>5时就成立了,退出判断
//结果应该为 表达式1
System.out.println("------------------");
x = 10;
if (x < 5)
System.out.println("表达式3");
System.out.println("表达式4");
//if...else在默认情况下是if(){} else(){}
//不带括号时就是默认情况下只执行第一行,如果下面的不再是判断语句,则默认下判断结束
//所以结果为 表达式4
}
}
if…else的其余情况下,也是一样的
switch
switch,case,default和break一般一起用
一般形式为:
switch(表达式){
case 常量值1:语句块;break;
case 常量值2:语句块;break;
case 常量值3:语句块;break;
…
case 常量值n:语句块;break;
default: 语句块;
}
表达式值得一般类型都可以为:byte,short,int,char,枚举,String
常量值都为一个固定的值,一般都各个不相同,不重复
在switch中,如果没有break的话,当一个常量值符合时,会从当前的语句块一直执行到switch结束。所以一般情况下,都会在每个case语句块后加上break语句。
default就是在排除所有的break语句后,还没有符合条件的话,就执行default语句。
public class Demo {
public static void main(String[] args) {
int x = 10;
switch (x) {
case 1:
System.out.println("x=1");
break;
case 2:
System.out.println("x=2");
break;
case 3:
System.out.println("x=3");
break;
default:
System.out.println("x大于3");
//结果就应该为x大于3
}
System.out.println("-------------------");
int y = 2;
switch (y) {
case 1:
System.out.println("x=1");
break;
case 2:
System.out.println("x=2");
case 3:
System.out.println("x=3");
default:
System.out.println("x大于3");
//结果就应该为 x=2
// x=3
// x大于3
}
}
}
switch: 一般适用于 固定的选项的匹配 效率高
if : 适用于 区间,结果为布尔 更加灵活
当default语句在case之中时,应该怎么执行
代码运行时,先查看所有的case语句,是否有符合条件的,如果没有的话,再看default语句,但是要注意到,default语句块结束时是否有break语句,没有的话,就要再执行一个接着的下一个case语句。
public class Demo {
public static void main(String[] args) {
int x = 10;
switch (x) {
case 1:
System.out.println("x=1");
break;
default:
System.out.println("x大于3");
case 2:
System.out.println("x=2");
break;
case 3:
System.out.println("x=3");
break;
//结果就应该为 x大于3
// x=2
}
}
}
instanceof
instanceof是对类型的判断
public class Demo {
public static void main(String[] args) {
//instanceof 类型的判断
Object x = 10;
//Object是java中表示的任何类型,但是现在要判断Object中具体为那个类型
//instanceof的返回值也为布尔型 true 或 false
System.out.println(x instanceof Integer);//返回 true
// 判断 x 是否为integer型(int的包装类)
Object y = 'a';
System.out.println(y instanceof Character);//返回 true
System.out.println(y instanceof String);//返回 false
}
}
return
return是终止一个函数的意思,主动结束一个函数时会用到return
即return后面的所有语句都不会再执行,再函数时,return还有返回的意思,从一个函数给调用这个函数的函数返回一个值,所以在大多运用时return后面都会加一个返回值
public class Demo {
//main为主函数
public static void main(String[] args) {
System.out.println("这个为主函数");
int a = fan();//调用fan函数,fan函数返回一个值
System.out.println("a=" + a);
}
public static int fan() {
System.out.println("这是被调用函数");
return 2; //return返回调用的函数所运行出来的值
}
}
assert
assert(断言)是作为一种软件调试的方法,提供出一种在代码中进行正确性检查的机制。
在程序开发当中,为了保证程序的正确性,通常在开发和测试中运用