第二章Java语言基础

2.2 流程控制语句

2.2.1 顺序结构语句

赋值语句
int i = 1;
i += 10;
i++;
i+1;	//错误,没有赋值功能的语句不能作为语句,应该是i+=1;
空语句
i = 1; ;	//第二个分号为空语句
复合语句
int i = 1;									int i = 1;
if(i == 1){									if(i ==1)
    i += 1;										i += 1;
    i++;										i++;
}
System.out.println(i);						System.out.println(i);

如果有花括号括住,则i++语句在if条件下执行,如果没有花括号,则i+=1语句在if条件下执行,i++独立顺序执行

2.2.2 选择语句

if语句

if是如果的意思,如果括号内的表达式为true,则执行if所属的语句;如果不满足括号内的表达式,则执行else(否则)所属的语句

int i = 1;					//定义变量i
int j = 2;					//定义变量j
int max;					//定义一个最大值max
if(i > j)					//判断i是否大于j
    max = i;				//如果i大于j,则执行该条语句
else						//if条件判断失败,则转入该行
    max = j;				//如果i不大于j,则执行该条语句
System.out.println(i);		//输出i

⚠️注意:if(i = 0)语法错,运算结果是int类型,不是boolean类型

if(i > = 100 && i <= 999)	//该条语句判断i是否为一个三位数,当if语句有多个判断条件时,可组成符合条件
if(i >= 100)
    if(i <= 999)			//if语句可以嵌套使用
if(i >= 100)
    if(i < = 999)
        i++;
	else
        System.out.println(i);	//若两条if语句只有一个else,java默认else属于离它最近的那条,也就是第二条if语句。
if(i >= 100) {
    if(i < = 999)
        i++;
}
else
	System.out.println(i);	//如果想要使else语句属于第一条if语句,则可以把第二个if语句用花括号括起来
if(i > =100)
    i++;
else if(i < 0)   
    i--;
System.out.println(i);		//除了if-else组合,还可以通过else if(否则如果)完成

java的空值 java中什么是空语句_i++

java的空值 java中什么是空语句_i++_02

switch语句

如果条件很多,if语句嵌套可以实现所需功能,但代码不简洁不够直观。

if(i == 1)
    if(i == 2)
        if(i == 3)

此时采用switch语句可以很好的解决问题

switch(表达式){
        case 常量表达式
            语句;
            break;
        case 常量表达式
            语句;
            break;
        ···
        default		//default可添加可不添加
            语句;
}

我们来看一个例题:

Scanner sc = new Scanner(System.in);			 //new一个Scanner对象sc,它可以完成输入功能
	int month = sc.nextInt();					 //定义一个int类型的变量month,输入的值赋值给month
		switch(month) {							 //进入switch语句,根据month选择对应case
		case 1:									 //如果month为1,执行该条语句,没有break所以case穿透到有break的case
		case 2:									 //如果month为2,执行该条语句,没有break所以case穿透到有break的case
		case 12:								 //如果month为12,执行该条语句
			System.out.println("冬天");		    //输出冬天
			break;								 //遇到break跳出switch结束运行
		case 3:									 //如果month为3,执行该条语句,没有break所以case穿透到有break的case
		case 4:									 //如果month为4,执行该条语句,没有break所以case穿透到有break的case
		case 5:									 //如果month为5,执行该条语句
			System.out.println("春天");		    //输出春天
			break;								 //遇到break跳出switch结束运行
		case 6:									 //如果month为6,执行该条语句,没有break所以case穿透到有break的case
		case 7:									 //如果month为7,执行该条语句,没有break所以case穿透到有break的case
		case 8:									 //如果month为8,执行该条语句
			System.out.println("夏天");		    //输出夏天
			break;								 //遇到break跳出switch结束运行
		case 9:									 //如果month为9,执行该条语句,没有break所以case穿透到有break的case
		case 10:								 //如果month为10,执行该条语句,没有break所以case穿透到有break的case
		case 11:								 //如果month为11,执行该条语句
			System.out.println("秋天");		    //输出秋天
			break;								 //遇到break跳出switch结束运行
		default:								 //如果输入1-12月份以外的月份,执行该条语句
			System.out.println("你输入的月份有误");	//输出“你输入的月份有误”,没有break语句,继续输入
		}

java的空值 java中什么是空语句_java的空值_03

2.2.3 循环语句

while语句
int i = 1;
int n = 10;
int sum = 0;
while(i <= n) {					//当(i<=n)=true时执行下面语句,直到false为止
    sum += i;
    i++;
}
System.out.println(i);
while(1) {
    System.out.println("1");	//1为true,死循环
}

java的空值 java中什么是空语句_java的空值_04

do-while语句
int i = 1;
int n = 10;
int sum = 0;
do {
    sum += i;
    i++;
}
while(i <= n);					//执行完do语句的内容后再判断,为true继续执行do语句,为false结束运行
for语句
for(表达式1;表达式2;表达式3) {	  //表达式1为循环控制变量赋初值,表达式2是循环条件,表达式3改变循环控制变量的值
	语句
}
for(i = 1;i <= 3;i ++){
 	System.out.println(i);   
}

java的空值 java中什么是空语句_java的空值_05

2.2.4 转移语句

return语句

使程序从方法中返回至方法调用处,并为方法返回一个值。

return i;
break语句

跳出当前switch/循环语句

continue语句

结束当前循环,回到循环条件