一、if 分支
1.基本结构:
1.
if(判断条件/布尔表达式){
//语句
}
eg:if(i > 3){
System.out.println("正确");
}
执行原理:若判断条件成立,结果为true,执行{}中的语句,若为false,则不执行。
2.if(i>3){
System.out.println("您输入的数字大于3");
}else{
System.out.println("您输入的数字小于3");
}
2.多重if结构
(1) 语法:
if(判断条件/布尔表达式){
// 语句1
}else if(判断条件/布尔表达式){
// 语句2
}else if(判断条件/布尔表达式){
// 语句3
}else{
// 语句4
}
(2) 执行流程:从上以此判断条件,哪一个条件成立,则执行对应{}中的语句,否则执行else中内容
3.if的嵌套结构
(1) 语法:
if(判断条件/布尔表达式){
if(判断条件/布尔表达式){
// 语句
}else if(判断条件/布尔表达式){
}else{}
}else{
}
(2) 执行流程:先判断外层 if条件,条件成立,再判断内层if条件
二、等值分支结构(switch..case)
switch(表达式){
case 值1: 语句1; break;
case 值2: 语句2; break;
case 值3: 语句3; break;
....
default:语句n;break;
}
注意:(1) switch()中表达式的结果类型必须是byte、short、int、char、String(jdk7.0及以上支持)
(2) break:终止switch..case结构,防止case穿透
(3) default没有位置要求,可以定义在所有case的上面,匹配时是先匹配case,没有成功的,再执行default
三、局部变量
1.概念:定义在函数或方法内部的变量
2.特点:
(1) 必须先赋值,再使用
否则报的错误为:可能尚未初始化变量
(2) 作用范围:从定义位置开始,到定义它的代码块结束
否则报的错误为: 找不到符号
(3) 在重合的作用范围内,不允许命名冲突
否则报的错误为: 已在方法 main(String[])中定义了变量
四、循环
分类:while、do...while,for循环
1.while
while
1.语法:
// 循环变量的初始化;
while(循环条件){
// 循环体(重复执行的代码)
// 循环变量的改变(统计)
}
2.原理:
执行 循环变量的初始化,先判断循环条件是否成立,结果是否为-true,成立-true,则执行 {}中循环体,然后循环变量进行改变,再次判断循环条件,成立-true;继续执行{}中循环体,然后循环变量发生改变,直到循环条件结果为false,终止整个循环结构。
3.注意:
(1) while循环的特点:先判断,再执行,执行次数为::0~n次
(2) 如果循环初始数据给的不合理,则循环有可能一次都不执行
int n = 5;
while(n<=3){ // 一次都不执行
...
n++;
}
(3) 如果循环条件给不理、循环变量没有发生改变,则有可能导致程序出现死循环(循环一直执行下去);利用 ctrl+c终止掉
2.do...while
语法:
// 循环变量的初始化
do{
// 循环体
// 循环变量的改变
}while(循环条件); // 分号不能省
注意:
(1) do..while循环的特点:先执行,再判断;执行次数为:1~n次
(2) do..while循环第一次执行不受循环条件限制的
3.for循环
1.语法:
for(循环变量的初始化;循环条件;循环变量的改变){
// 循环体
}
2.注意:
(1) for的循环执行特点:先判断,再执行,执行的次数为 0~n次
(2) 如果循环的初始化或是循环条件给的不合理,则有可能循环一次都不执行
for(int i=3; i<=2;i++){}
(3) 循环变量的初始化可以定义在for循环的上面,定义在for循环上面,则循环变量的作用范围扩大,循环结束后,循环变量继续有效的;
如果将循环变量定义在for()中,作用范围仅在循环内部有效,循环结束,循环变量失效,提高空间利用率
int i = 3;
for( ;i<=5;i++){}
for(int i=3;i<=5;i++){} --->建议
(4) 当循环判断条件为空语句时,则默认为 true,程序不加其他控制,则进入死循环
for(int i=1; ; i++){}
(5) 循环变量的改变语句可以定义循环{}中,但是 不要重复,可能出现逻辑错误
for(int i=1;i<=10; ){
//..
i++;
}
4.循环控制语句
-
break:终止、结束循环结构;还可以应用在 switch..case中,防止case穿透
-
continue:中断、结束本次循环,从而进入下一次循环。
5.循环的嵌套
-
理解:在一个循环结构中再定义一个循环结构
// 外层循环 for(int i=1;i<=3;i++){ // 内层循环 for(int j=1;j<=3;j++){} }
-
循环次数:外层循环的循环次数*内层循环的循环次数
-
利用循环打印图形时,通常利用外层循环控制行,内存循环控制列
Scanner sc = new Scanner(System.in); System.out.println("输入一个行数:"); int n = sc.nextInt(); // 外层循环控制行 for(int i=1;i<=n;i++){ // 内层循环控制列:内存的列数受 所在 行 for(int j=1;j<=i;j++){ System.out.print("* "); } System.out.println(); // 换行 }