1、第二章 Java 语言基础 (选择结构),新课引入,public class Test1 public static void main(String args )int x,y,z;x=1;y=2;z=x+y;System.out.println(“ x+y= “ +z); ,import java.io.*; public class Test2 public static void main(String args ) throws IOExceptionint x,y,z;String s;BufferedReader r=new BufferedReader(new InputStr
2、eamReader(System.in);System.out.println(”enter x:”);s=r.readLine();x=Integer.parseInt(s); /将该字符串转换为整型System.out.println(”enter y:”);s=r.readLine();y=Integer.parseInt(s); /将该字符串转换为整型z=x+y;System.out.println(“ x+y= “ +z); ,一、结构化编程,流程控制语句用于控制程序中各语句的执行顺序。 Java提供的流程控制语句有顺序结构、选择结构、循环结构、转移等。,if(条件表达式) 语句块1
3、 else 语句块2 ,二、if 条件语句,说明: if后的表达式是判定条件。一般为逻辑表达式或关系表达式。 语句中if和else属于同一个条件语句,else子句不能作为语句单独使用,必须与if配对使用。 语句序列可以含一条或多条执行语句。当有多条执行语句时必须用“ ”,将几个语句括起来成为一条复合语句,否则,只执行第一条语句。 else及后面的语句序列可以省略。 在if子句末不能加分号“ ;” if与else的配对原则,二、if 条件语句,例如: if(ab) System.out.println(”ab”); ,二、if 条件语句,例如: if(score=60) System.out.p
4、rintln(”你及格了”); else System.out.println(”你没有及格”); ,二、if 条件语句,例1:判断一个数是否为奇数,如果为奇数则输出,否则不予理睬。,public class IsOdd public static void main(String args) int in =11, mod;mod = in%2;if(mod=1) System.out.println(“数字 “+ in + “ 为奇数“); ,二、if 条件语句,例2:要求在例1的执行过程中,如果用户输入偶数必须给出提示。,二、if 条件语句,if ( 条件表达式 )语句块1; else语
5、句块2;,import java.io.*; public class IsOdd2 public static void main(String args ) throws IOExceptionint x;String s;BufferedReader r=new BufferedReader (new InputStreamReader(System.in);System.out.println(”enter an integer:”);s=r.readLine();x=Integer.parseInt(s); if(x%2=1)System.out.println(“你输入的数字 “+
6、 x+ “ 为奇数“);elseSystem.out.println(“你输入的数字 “+ x + “ 为偶数“); ,例3: import java.io.*; public class Test public static void main(String args) throws IOExceptionchar ch;System.out.print(“请输入一个字符:“); ch = (char)System.in.read( ); / 从键盘输入一个字符if (ch=0 ,二、if 条件语句,if (条件1)语句块1; else if (条件2)语句块2; else if (条件3)
7、语句块3; else语句块n;,if (score=85 ,二、ifelse ifelse多选择语句,if(表达式1)if(表达式2)语句序列1else语句序列2 elseif(表达式3)语句序列3else语句序列4,二、ifelse ifelse多选择语句,例如: if(Score60)System.out.println(“不及格“); elseif(Score80) System.out.println(“及格“);else if(Score90)System.out.println(“良好“);elseSystem.out.println(“优秀“);,二、ifelse ifelse多
8、选择语句,例4:根据年份和月份输出每月的天数。,二、ifelse ifelse多选择语句,public class IfTest public static int dayOfMonth(int year,int month)if(month=2)if(year%4=0,else if(month=4|month=6|month=9|month=11)return 30; elsereturn 31; public static void main(String args) int days=dayOfMonth(2008,2);System.out.println(“days of Febr
9、uary,2008 is: “ +days); ,二、ifelse ifelse多选择语句,三、switch 语句,switch(表达式) case 值1:语句块 1 ;case 值2:语句块2 ; default:语句块n; switch 的常量和表达式可以是整型、字符型及byte型 任何两个case常量值不可以有相同的值。 只能对等式进行测试(即表达式的值是否等于值1、值2.,根据表达式取值的不同转向不同的分支。 每个case分支中的语句块无须用花括号括起来。 每个case分支都只是入口点 可在case语句块中加入break 语句,可立即转出switch语句(不再走后面case流程)。,三
10、、switch 语句,例5: import java.io.*; public class Test public static void main(String args) throws IOExceptionchar ch ;System.out.print(“请输入成绩(字符):“); ch = (char)System.in.read() ; / 从键盘输入一个字符switch (ch) case A : System.out.println(“85100“); break ;case B : System.out.println(“6084“); break ;case C : Sy
11、stem.out.println(“059“); break ;default : System.out.println(“输入有误“); ,例6: import java.io.*; public class Test public static void main(String args) throws IOExceptionchar ch ;System.out.print(“请输入成绩(字符):“); ch = (char)System.in.read() ; / 从键盘输入一个字符switch (ch) case a : case A : System.out.println(“85
12、100“); break ;case b :case B : System.out.println(“6084“); break ;case c :case C : System.out.println(“059“); break ;default : System.out.println(“输入有误“); ,练习,练习1:若a、b、c1、c2、x、y均是整型变量,正确的switch语句是 。 (A)swich(a+b); (B)switch(a*a+b*b) case 1:y=a+b;break; case 3:case 0:y=a-b;break; case 1:y=a+b;break;
13、case 3:y=b-a;break; (C)switch a (D)switch(a-b) case 3: case c1:y=a-b;break; case 4:x=a+b;break;case c2:x=a*d;break; case 10:default:x=a+b; case 11:y=a-b;break;default:y=a*b;break; ,练习2:分析程序运行结果。 public class s1 public static void main(String args) int x=1;switch(x)case 0: System.out.println(“first“)
14、;break;case 1: System.out.println(“second“);case 2: System.out.println(“third“); break; ,练习3:分析程序运行结果。 public class f1 public static void main(String args) int x=1,y=0;switch(x)case 1:switch(y)case 0: System.out.println(“first“);break;case 1: System.out.println(“second“);break;case 2: System.out.println(“third“); ,