程序控制流---条件结构(基本条件if 多重结构 switch结构) 生成随机数
控制流有两种结构: 条件结构 循环结构
条件结构三种:基本条件结构,多重条件结构,switch条件结构
循环结构三种:while循环 do-while循环 for循环
if语句适合连续的值可以用比较运算符写条件
switch结构更适合不连续的一个一个的数值
基本条件结构:
if(条件){ //满足条件的代码 }
else{ //未满足条件的代码 }
例子:判断两个成绩是否都及格
Scanner sc=new Scanner(System.in); sout("请输入html成绩:"); float heml=sc.nextFloat(); sout("请输入css成绩:"); float css=sc.nextFloat(); if(html>=60&&heml>=60){ sout("成功通过!"); } else{ sout("未通过!"); }
if条件内容无论是怎样的表达式,只要结果是boolean类型即可
boolean flag=true; if(flag==true)//等价于if(flag){ sout(“flag为true”);
}
else{
sout(“flag为false”);
}
三元表达式:三元是对表达式基本条件判断的特殊运算符号 表达式 ?表达式1:表达式2;
true则调用表达式1;
false则调用表达式2;
例子:找出两个数中的最大值
sout("请输入第一个数:"); int n1=sc.nextInt(); sout("请输入第二个数:"); int n2=sc.nextInt(); int max; if(n1>=n2){ max=n1; } else{ max=n2; } sout("最大值是:"+max);
多重条件结构:
if(条件1){ //满足条件1的代码 } else if(条件2){ //满足条件2的代码 ] else if(条件3){ //满足条件3的代码 } else{ //所有条件都不满足的代码 }
例子:输入成绩判断是优秀90、良好80、及格60、不及格
sout("请输入成绩:"); int score=sc.nextInt(); if(score>=90){ sout("成绩优秀!"); } else if(score>=80){ sout("成绩良好!"); } else if(score>=60){ sout("成绩及格!"); } else{ sout("成绩不及格!"); }
switch结构:
switch(){ case 值1: //执行代码1 break; case 值2: //执行代码2 break; default: //执行代码3 }
代码中每个case后面都要有break,不然case结束后会运行下一个case
1.case值不能重复
2.case值不能为变量名,只能为常值
sout(“主菜单”); sout(“1.登录”); sout(“2.注册”); sout(“3.退出系统”); Scanner sc=new Scanner(System.in); int choice=sc.nextInt(); /*********用if结构写***********/ if(choice==1){ sout(“登录”); } else if(choice==2){ sout(“注册”); } else if(choice==3){ sout(“退出系统”); } /*********用switch结构写***********/ switch(choice){ case 1: sout(“登录”); break; case 2: sout(“注册”); break; case 3: sout(“退出系统”); break; default: sout(“无效选择”); }
例子:输入年份和月份,判断当月一共有多少天?
Scanner sc=new Scanner(System.in); sout(“请输入一个年份:”); int year=sc.nextInt(); sout(“请输入一个月份:”); int month=sc.nextInt(); //判断月份范围,只有月份输入的规范才能够进入判断月份的方法 if(month>=1&&month<=12){ int day; switch(month){
//2月特殊,单独写一个case
case 2: year%4==0&&year%100!=0||year%400==0?day=29:day=28; break; //小月 case 4: case 6: case 9: case 11: day=30; break; //其余月为大月 default: day=31; } sout(month+“月有”+day+“天”); } else{ sout(“非法的月份输入”); }
随机数生成器:
//导入包 import java.util.Random; //创建随机生成器 Random ran=new Random(); //随机生成一个0-4的整数, int n=ran.nextInt(5); //若是生成1-6的数,则应该生成0-5再加1 int n=ran.nextInt(6)+1; //生成一个100-1000的随机数,要加100 int n=ran.next(901)+100;
例子:生成一个四位数的验证码
Random ran=new Random(); int n1=ran.nextInt(10); int n2=ran.nextInt(10); int n3=ran.nextInt(10); int n4=ran.nextInt(10); //要让加号起连接作用,连接上一个空字符 sout(""+n1+n2+n3+n4) //如果要对验证码进行校验,则另外需要对其进行接收 String code=""+n1+n2+n3+n4; sout("生成的验证码为"+"["+code+"]");