JAVA入门到精通-第4讲-流程控制



条件表达式数据类型,应该和case常量表达式一致,否则就会报错。









*****:switch中的可用数据类型主要是:允许byte,short,int,char,enum等
1、单分支控制作业:请大家看个案例[demo22.java]:
编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!”
x
/* 作者:徐升 功能:单分支控制作业 日期:2017/9/1*/import java.io.*; //载入IO流包public class Demo22{ public static void main(String []args) { try { //输入流,从键盘接受数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输出你的年龄"); //从控制台读取一行数据 String a1=br.readLine(); //把String转为float float num1=Float.parseFloat(a1); if(num1>18) {System.out.println("你的年龄大于18,要为自己的行为负责!");} if(num1==18) {System.out.println("你的年龄是18岁");} if(num1<18) {System.out.println("你的年龄小于18岁");} }catch(Exception e) { e.printStackTrace(); } }}
2、双分支控制作业:请大家看个案例[demo33.java]:
编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”
import java.io.*;//加载IO流包public class Demo33{ public static void main(String []args){ try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输入你的年龄"); //从控制台读取一行数据 String a1=br.readLine(); //把String转为float float num1=Float.parseFloat(a1); if(num1>=18){System.out.println("你年龄大于18岁,要对自己的行为负责!");} else{System.out.println("你的年龄不大这次放过你了");} }catch(Exception e){ e.printStackTrace(); } }}
3、多分支控制作业:请大家看个案例[demo44.java]
编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。
x
/* 作者:徐升 功能:多分支控制作业 日期:2017.9.1*/import java.io.*;//加载IO流包public class Demo44{ public static void main(String []args){ try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输入你的年龄"); //从控制台读取一行数据 String a1=br.readLine(); //把String转为float float num1=Float.parseFloat(a1); if(num1>=18){System.out.println("你年龄大于18岁,要对自己的行为负责,送入监狱");} else if(num1>10 && num1<=18) {System.out.println("你的年龄也不小了,把你送少管所");} else {System.out.println("小孩子,下次注意");} }catch(Exception e){ e.printStackTrace(); } }}
4、多分支控制作业:请大家看个案例[demo55.java]
请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
a表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。
x
/* 作者:徐升 功能:switch语句控制 日期:2017.9.1*/import java.io.*; //加载IO流包public class Demo55 { public static void main(String []args){ try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输入一个字符:"); //从控制台读取一行数据 String t=br.readLine(); switch(t) //switch()多分支控制语句实现跳转 { case "a": System.out.println("星期一"); break; case "b": System.out.println("星期二"); break; case "c": System.out.println("星期三"); break; case "d": System.out.println("星期四"); break; case "e": System.out.println("星期五"); break; case "f": System.out.println("星期六"); break; case "g": System.out.println("星期日"); break; default: System.out.println("珍惜时间,但行好事,莫问前程!"); } }catch(Exception e){ e.printStackTrace(); } }}
import java.io.*;public class Demo55{ public static void main(String []args){ try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); System.out.println("请输入1,2,3,4,5,6,7"); String a1=br.readLine(); int c=Integer.decode(a1); switch(c){ case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("输入错误"); break; } }catch(Exception e){ e.printStackTrace(); } }}5、多分支控制作业:请大家看个案例[demo66.java]
对比switch与if语句在执行分支语句的区别。
import java.io.*;public class Demo66{ public static void main(String []args){ try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输入0至100的数:"); //从控制台读取一行数据 String a1=br.readLine(); //把String转为int int a=Integer.decode(a1); if (a<=100 && a>=90){System.out.println("优");} else if (a<90 && a>=80){System.out.println("良");} else if (a<80 && a>=70){System.out.println("中");} else if (a<70 && a>=60){System.out.println("及格");} else if (a<60 && a>=0){System.out.println("不及格");} else {System.out.println("input error");} }catch(Exception e){ e.printStackTrace(); } }}***switch分支语句不支持判断类型即boolean类型,switch只支持byte,short,int,char,enum等数据类型
-------------------------------------------------------------------------------
循环控制
听其名而知其意,就是让你的代码可以循环的执行。
循环控制有三种
1、for循环
语法:
for(循环初值;循环条件;步长){
语句;//循环体
}
2、while循环
语法:
while(循环条件){
语句;//循环体
}
特别说明:while循环是先判断在执行语句。
3、do
while循环 语法:
do{
语句;//循环体
}while(循环条件);
特别说明:do while循环是先执行,再判断。
请大家看个案例[demo77-88-99.java]:
编写一个程序,可以打印10句“你好,我是刘德华同志!”。请大家想想怎么做?
1、for循环
for (int a=0;a<10;a++){System.out.println("你好,我是刘德华同志!");}2、while循环
int i=0;while(i<10){System.out.println("你好,我是刘德华同志!");i++;}3、do while循环
int i=0;do{System.out.println("你好,我是刘德华同志!");i++;}while(i<10)请编写一个程序,可以接收一个整数,表示层数,打印出金字塔一半。[demo100.java]
x
***把一个复杂的问是先拆解成简单问题//三角形[Demo100.java]public class Demo100{ public static void main(String []args){ //死去活来法-->打四次 int lay=4; //表示有多少层 for(int i=1;i<=lay;i++){ //打印* for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println();//换行 } }}
-------------------------------------------------------------------------------
//金字塔[Demo101.java]public class Demo101{ public static void main(String []args){ int lay=10;//表示有多少层 for(int i=1;i<=lay;i++){ //找出规律 //1->3 2->2 3->1 4->0找出空格 for(int k=1;k<=lay-i;k++){ System.out.print(" "); } //打印* //1->1 2->3 3->5 4->7找出星的规律 for(int j=1;j<=(i-1)*2+1;j++){ System.out.print("*"); } System.out.println();//换行 } }}

-------------------------------------------------------------------------------
//镂空金字塔[Demo102.java]public class Demo102{ public static void main(String []args){ int lay=10;//表示有多少层 for(int i=1;i<=lay;i++){ //找出规律 //1->3 2->2 3->1 4->0找出空格 for(int k=1;k<=lay-i;k++){ System.out.print(" "); } //打印* //1->1 2->3 3->5 4->7找出星的规律 for(int j=1;j<=(i-1)*2+1;j++){ //判断该层是否是顶层或者是底层 if(i==1||i==lay){ System.out.print("*"); }else{ //如果是第一个* if(j==1||j==(i-1)*2+1){ System.out.print("*"); }else{ System.out.print(" "); } } } System.out.println();//换行 } }}
-------------------------------------------------------------------------------
//空心菱形[Demo103.java]public class Demo103{ public static void main(String []args){ int lay=4;//菱形上半部行数 for(int i=1;i<=lay-1;i++){ //判断循环上半部分 for(int k=1;k<=lay-i;k++){ //找行内*号前输出空格 System.out.print(" "); } for(int j=1;j<=(i-1)*2+1;j++){ //找行内输出星的位置 if(j==1||j==(i-1)*2+1){ //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。 System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); //换行 } for(int i=1;i<=lay;i++){ //判断循环菱形下半部分 for(int k=1;k<=i-1;k++){ //判断循环找*号前要输出空格处 System.out.print(" "); } for(int j=1;j<=(lay-i)*2+1;j++){ //判断循环行长度 if(j==1||j==(lay-i)*2+1){ //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。 System.out.print("*"); }else{ System.out.print(" "); } } System.out.println();//输出换行 } }}
-------------------------------------------------------------------------------
//实心菱形[Demo104.java]public class Demo104{ public static void main(String []args){ int lay=4;//菱形上半部行数 for(int i=1;i<=lay-1;i++){ //判断循环上半部分 for(int k=1;k<=lay-i;k++){ //找行内*号前输出空格 System.out.print(" "); } for(int j=1;j<=(i-1)*2+1;j++){ //找行内输出星的位置 System.out.print("*"); } System.out.println(); //换行 } for(int i=1;i<=lay;i++){ //判断循环菱形下半部分 for(int k=1;k<=i-1;k++){ //判断循环找*号前要输出空格处 System.out.print(" "); } for(int j=1;j<=(lay-i)*2+1;j++){ //判断循环行长度 System.out.print("*"); } System.out.println();//输出换行 } }} }

浙公网安备 33010602011771号