顺序结构、选择结构和循环结构是结构化程序设计的3种基本结构,是各种复杂程序的基本构造单元。图3.1展示了这3种程序结构的基本理念,其中,第一幅图是顺序结构的流程图,它就是按照书写顺序执行的语句构成的程序段;第二幅图是选择结构的流程图,它主要根据输入数据和中间结果
例3.2两种情况都是正确的
if...else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理;如果满足另一种条件,则进行另一种处理”
前面讲过三种形式的条件语句,这三种形式的条件语句都可以嵌套条件语句。例如,在第一形式的条件语句中嵌套第二种形式的条件语句。形式如下:\
在第二种形式的条件语句中嵌套第二种形式的条件语句。形式如下:
条件语句可以有多种嵌套方式,可以根据具体需要进行设计,但一定要注意逻辑关系
switch 语句首先计算参数的值,如果参数的值和某个case 后面的常量表达式相同,则执行该 case吾句后的若干个语句,直到遇到 break 语句为止。此时如果该 case 语句中没有 break 语句,将继续执行后面 case 中的若干个语句,直到遇到 break 语句为止。若没有任何一个常量表达式与参数的值相同,则执行 default 后面的语句。
break 的作用是跳出整个 switch 语句。
default 语句是可以不写的,如果它不存在,而且 switch 语句中表达式的值不与任何 case 的常量值相同,switch 则不做任何处理。
以一个较简单明了的方式来实现“多选一”的选择。 语法如下
switch(用于判断的参数){ case 常量表达式1:语句1;[break;] case 常量表达式2:语句2;[break;]...... case 常量表达式n:语句n;[break;] default:语句n+1;[break;] }
switch语句首先计算参数的值,如果参数的值和某个case后面的常量表达式相同,则执行该case语句后的若干个语句,直到遇到break语句为止。此时如果该case语句中没有break语句,将继续执行后面case中的若干个语句,直到遇到break语句为止。若没有任何一个常量表达式与参数的值相同,则执行default后面的语句。
break的作用是跳出整个switch语句。
default语句是可以不写的,如果它不存在,而且switch语句中表达式的值不与任何case的常量值相同,switch则不做任何处理。switch语句的执行流程如图3.11所示。
public class GetSwitch { public static void main(String[] args) { int week=2;//定义int型变量week switch (week) { case 1://定义case语句中常量为1 System.out.println("Monday"); break; case 2://定义case语句中常量为2 System.out.println("Tuesday"); break; case 3://定义case语句中常量为3 System.out.println("Wednesday"); break; case 4://定义case语句中常量为4 System.out.println("Thursday"); break; case 5://定义case语句中常量为5 System.out.println("Friday"); break; case 6://定义case语句中常量为6 System.out.println("Saturday"); break; case 7://定义case语句中常量为7 System.out.println("Sunday"); break; default: System.out.println("Sorry,I don't Know"); } } }
public class AdditiveFor { public static void main(String[] args) { int sum=0; int i; for(i=1;i<=100;i++) { sum+=i; } System.out.println("the result :"+sum); } }
public class Repetition { public static void main(String[] args) { int arr[]= {7,10,1};//声明一维数组 System.out.println("一维数组中的元素分别为");//输出信息 for(int x :arr) { System.out.println(x); } } }
public class Multip { public static void main(String[] args) { int i, j;//创建两个整数变量 for(i=1; i<10;i++) {//输出九行 for(j=1;j<i+1;j++) {//输出行数相等的列 System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println();//换行 } } }
public class BreakTest { public static void main(String[] args) { for(int i=1; i<20;i++) { if(i%2==0) {//如果i是偶数 System.out.println(i);//输出i的值 break;//跳入下一循环 } } System.out.println("---end---"); } }
public class BreakInside { public static void main(String[] args) { for(int i=0;i<3;i++) { for(int j=0;j<6;j++) { if(j==4) {//如果J等于4的时候就结束内循环 break; } System.out.println("i="+i+" j="+j); } } } }
public class BreakOutside { public static void main(String[] args) { Loop: for(int i=0;i<3;i++) {//在for循环前用标签标记 for(int j=0;j<6;j++) { if(j==4) {//如果J等于4的时候就结束内循环 break Loop;//跳出Loop标签标记的循环体 } System.out.println("i="+i+" j="+j); } } } }
public class Continue { public static void main(String[] args) { for(int i=1;i<20;i++) { if(i%2!=0) {//如果i不是偶数 continue;//跳入下一循环 } System.out.println(i); } } }
“顺序结构”代表“先执行a,再执行b”的逻辑。
“条件判断结构”代表“如果…,则…”的逻辑。
“循环结构”代表“如果…,则重复执行…”的逻辑。