程序控制流---条件结构(基本条件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+"]");
posted @ 2020-03-29 18:12  小小野生程序员sunny  阅读(315)  评论(0编辑  收藏  举报