1.1程序流程控制
三种基本流程结构:顺序结构;分支结构;循环结构
顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构
根据条件,选择性地执行某段代码。
有if…else和switch-case两种分支语句。
循环结构
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
1.2顺序结构
public class Test{
int num2 = num1 + 2;
int num1 = 12;
}
1.3分支结构
1.3.1if-else结构
public class AgeTest{
public static void main(String args[]){
int age = 75;
if (age< 0) {
System.out.println("不可能!");
} else if (age>250) {
System.out.println("是个妖怪!");
} else {
System.out.println(“人家芳龄 " + age +" ,马马乎乎啦!");
} } }
由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数字");
int num1 = scanner.nextInt();
System.out.print("请输入第二个数字");
int num2 = scanner.nextInt();
System.out.print("请输入第三个数字");
int num3 = scanner.nextInt();
int maxs;
int mins;
int mids;
if (num1 > num2 && num1 > num3){maxs = num1;}
else if (num2 > num1 && num2 > num3){ maxs = num2;}
else {maxs = num3;}
if (num1 < num2 && num1 < num3){mins = num1;}
else if (num2 < num1 && num2 < num3){ mins = num2;}
else {mins = num3;}
if (num1 != maxs && num1 != mins){mids=num1;}
else if (num2 != maxs && num2 != mins){mids=num2;}
else {mids = num3;}
System.out.println(maxs + "-" + mids + "-" + mins);
???
int x = 4;
int y = 1;
if (x > 2) {
if (y > 2)
System.out.println(x + y);
System.out.println("atguigu");
} else
System.out.println("x is " + x);
boolean b = true;
//如果写成if(b=false)能编译通过吗?如果能,结果是?能通过,结果是把b的值设为false
if(b == false)
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
1.3.2switch-case结构
public class SwitchTest {
public static void main(String args[]) {
int i = 1;
switch (i) {
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
default:
System.out.println("default");
break; } } }
String season = "summer";
switch (season) {
case "spring":
System.out.println("春暖花开");
break;
case "summer":
System.out.println("夏日炎炎");
break;
case "autumn":
System.out.println("秋高气爽");
break;
case "winter":
System.out.println("冬雪皑皑");
break;
default:
System.out.println("季节输入有误");
break; }
if和switch语句很像,具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几
种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。也就是说,使用switch-case的,都可以改写为if-else。反之不成立。
1.4循环结构
在某些条件满足的情况下,反复执行特定代码的功能
循环语句分类
for 循环
while 循环
do-while 循环
循环语句的四个组成部分
初始化部分(init_statement)
循环条件部分(test_exp)
循环体部分(body_statement)
迭代部分(alter_statement)
1.4.1for循环
②循环条件部分为boolean类型表达式,当值为false时,退出循环
①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
④可以有多个变量更新,用逗号分隔
1.4.2while循环
语法格式
①初始化部分
while(②循环条件部分){ ③循环体部分; ④迭代部分; }
**注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
for循环和while循环可以相互转换**
1.4.3do-while循环
语法格式
①初始化部分;
do{
③循环体部分
④迭代部分
}while(②循环条件部分);
1.5嵌套循环
将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
1.6特殊关键的使用:break,continue
附加:特殊流程控制语句3
return:并非专门用于结束循环的,它的功能是结束一个方法。
当一个方法执行到一个return语句时,这个方法将被结束。
与break和continue不同的是,return直接结束整个方法,不管
这个return处于多少层循环之内