1)顺序结构:程序从上到下逐行地执行,中间没有任何判断和跳转。
2)分支结构:根据条件,选择性地执行某段代码。if 、switch
3)循环结构:根据循环条件,重复性的执行某段代码。
1、顺序结构
public class TestSortStruc {
public static void main(String[] args) {
int i = 12;
int j = i + 1;
System.out.println(j); } }
2、分支结构
1) if
public class TestIf {
public static void main(String[] args) {
//第一种格式 int i = 2;
if(i == 1) {
System.out.println(i); }
//第二种格式
if(i == 1) {
System.out.println(i);
} else {
System.out.println("aaa"); }
//分数大于等于60,打印及格;否则,打印不及格
int score = 50;
if(score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格"); }
//第三种格式
i = 0;
if(i == 1) {
System.out.println("one");
} else if(i == 2) {
System.out.println("two");
} else if(i == 3) {
System.out.println("three");
} else {
System.out.println("other"); } } }
2) switch
public class TestSwitch {
public static void main(String[] args) {
int i = 5;
switch(i){
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3: System.out.println("three");
break;
default:
System.out.println("other");
break; }
switch(表达式) :表达式的返回值必须是下述几种类型之一:byte,short,char,int,枚举,String
case子句中的值必须是常量,不能是取值范围,所有case子句中的值应是不同的,根据表达式的返回值,选择相应的case去判断,一旦满足case条件,就执行case的相应语句。
break语句用来在执行完一个case分支后,使程序跳出switch语句块,如果没有break,会继续执行其下的语句,直到switch结尾或者再次遇到break
default子句是可选的, 当没有匹配的case时,执行default而且位置是灵活的。
switch和if语句的对比 if和switch语句很像,具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而且符合byte,short,char,int,枚举,String这几种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
3、循环结构
循环语句
功能:在某些条件满足的情况下,反复执行特定代码的功能
循环语句的四个组成部分:①初始化条件、②循环条件、 ③循环体、④迭代条件 循环语句分类:for循环、while循环、do…while循环
1)for循环
public class TestFor
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
// System.out.println("*****");
System.out.println(i); }
// 求和
int sum = 0;
for (int s = 1; s <= 5; s++) {
sum = sum + s;
} System.out.println(sum);
// 求偶数的和
sum = 0;
for (int s = 1; s <= 5; s++) {
if (s % 2 == 0) {
sum = sum + s; } }
System.out.println(sum);
2)while循环
public class TestWhile {
public static void main(String[] args) {
int i = 1;//初始化条件
while(i <= 5) {//i<=5循环条件
System.out.println(i);//循环体
i++;//迭代条件
}
System.out.println(i + "^^^^^");
for(int j = 1; j <= 5; j++) {
System.out.println(j); }
求偶数和、求奇数和
int sumOu = 0;
int sumJi = 0;
i = 1;
while(i <= 100) {
if(i % 2 == 0) {
sumOu = sumOu + i;
} else {
sumJi = sumJi + i;
}
i++;
}
System.out.println(sumOu + "----");
说明:for循环与while可以相互转换。
3)do while循环
public class TestDoWhile {
public static void main(String[] args) {
int i = 1;//初始化条件
do {
System.out.println(i);//循环体
i++;//迭代条件
}while(i <= 5);//i<=5循环条件
System.out.println("-------------------");
//do-while与while的区别:do-while循环至少会执行一次
//求和
int sum = 0;
i = 1;
do {
sum = sum + i; i++;
}while(i <= 5);
System.out.println(sum);
4、特殊流程控制语句
break语句 、continue语句 、return
public class TestFlowControl {
public static void main(String[] args) {
//break:用于终止某个语句块的执行,只能用于switch和循环语句中
int i;
for(i = 1; i <= 5; i++) {
if(i == 4) {
break;//System.out.println("break后不能放语句");
}
System.out.println(i); }
//continue:用于跳过某个循环语句块的一次执行,只能用于循环语句中
for(i = 1; i <= 5; i++) {
if(i == 3) {
continue;//System.out.println("continue后不能放语句"); }
System.out.println(i); }
String str = m1();
System.out.println(str);
//注意:break、continue、return之后不能有其他的语句,因为程序永远不会执行其后的语句
5、循环嵌套 将一个循环放在另一个循环体内,就形成了嵌套循环。 for ,while ,do…while均可以作为外层循环和内层循环。 如在 for循环中包含另一个 for循环,也可以互相嵌套,如for循环中包含一个 while循环或者 do-while循环等等
for(xxx;xxx;xxx){
for(xxx;xxx;xxx){}
}
for(xxx;xxx;xxx){
while(xxx){}
}
while(xxx){
for(xxx;xxx;xxx){}
}
public class TestQianTao {
public static void main(String[] args) {
for(int i = 1; i <= 5; i++) {//外层循环控制行数
//System.out.print("i=" + i + ":");
for(int j = 1; j <= 4; j++) {//内层循环控制列数 System.out.print("j=" + j); } System.out.println(); }