Day8:Java顺序控制、分支控制、循环控制、break、continue、return

主要的三大流程控制语句

1、顺序控制

2、分支控制

3、循环控制

1、顺序控制

程序从上到下逐行的执行,中间没有任何的判断和跳转;

Java中定义变量时采用合法的前向引用

变量先定义后使用

2、分支控制if-else

单分支

基本语法:

if(条件表达式){

执行代码块;(可以有多条语句)

}

说明:当条件表达式为真(true)的时候,就会执行代码块里面的代码,如果为假(false),就不执行;

//单分支语句

Scanner My_Scanner = new Scanner(System.in);
System.out.println("请输入年龄:");
int age = My_Scanner.nextInt();
if (age > 18){
    System.out.println("你"+age+"岁了"+"你成年了!!");
}

双分支

基本语法:

if(条件表达式){

执行代码块1;

}else{

执行代码块2;

}

说明:当条件表达式成立时,即立即执行代码块1,否则执行代码块2;

// 多分支语句
System.out.println("请输入你的成绩:");
double grade = My_Scanner.nextDouble();
if (grade >= 60){
    System.out.println("你考了"+grade+"分"+"没有挂科!!");
}else{
    System.out.println("你考了"+grade+"分"+"挂科了!!");
}

多分支

基本语法

if(条件表达式){

执行代码块1;

}else if (条件表达式2;){

执行代码块2;

}

......

else{

执行代码块n;

}

说明:当条件表达式1成立时,即立即执行代码块1,

如果代码块1不成立,才去判断表达式2是否成立,

如果表达式2成立,就立即执行代码块2,以此类推,

如果所有表达式都不成立,则执行else代码块;

多分支可以没有else;

// 多分支练习
System.out.println("请输入你的信用分数(1-100):");
double grade = My_scanner.nextDouble();
if(grade >= 1 && grade <= 100){

    if(grade == 100){
        System.out.println("信用极好!!");
    } else if (grade > 80 && grade <= 99) {
        System.out.println("信用优秀!!");
    }else if (grade >= 60 && grade <= 80){
        System.out.println("信用一般!!");
    }else{
        System.out.println("信用不及格!!");
    }
}else{
    System.out.println("请正确输入1-100的信用分!!");
}

嵌套分支

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支结构称为内层分支外面的分支结构称为外层分支。规定:不要超过3层(可读性不好)

基本语法:

if(){

if(){

}else{

}

}

// 嵌套分支练习

System.out.println("请输入你的成绩:");
double score = My_scanner.nextDouble();


if(score > 8.0){
    System.out.println("恭喜你进入决赛!!");
    System.out.println("请输入你的性别:");
    char gender = My_scanner.next().charAt(0);   // 新接受到字符串,在取出到字符串的第一个字符
    if(gender == '男'){
        System.out.println("进入男子组!!");
    }else if(gender == '女'){
        System.out.println("进入女子组!!");
    }else{
        System.out.println("你的性别输入有错误!!");
    }

}else{
    System.out.println("不好意思,你被淘汰了!!");
}

switch分支结构

基本语法:

switch(表达式){

case 常量1:

语句1;

break;

case 常量2:

语句2;

break;

......

default:

default语句块;

break;

}

表达式对应一个值,case常量1:当表达式的值等于常量1时,执行语句块1

break:表示退出swtich

如果没有匹配到常量1,就匹配常量2,如果一个都没有匹配上,就默认执行default;

// switch
//编写一个程序,该程序可以接受一个字符,比如:a,b,c,d,e,f,g
//a表示星期一,b表示星期二,.......
System.out.println("请输入a,b,c,d,e,f,g:");
char day = My_scanner.next().charAt(0);
switch (day){
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("请正确输入字符!!");
}

         

switch细节:

1、表达式的数据类型和case后面的类型一致,或者可以自动转换可以相互比较的类型;

2、switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)

3、case字句里面的值必须是常量,而不能是变量;

4、default字句是可选的,当没有匹配到case时,执行default;

5、break语句用来在执行完一个case分支后使程序跳出switch语句;如果没有写break,程序会顺序执行switch结尾;

switch 和 if的比较:

如果判断的具体数值不多,而且符合byte,short,int,char,enum(枚举),String这6种类型,虽然这两个语句都可以用,建议使用switch语句;

其他情况:对区间判断,对结果为boolean类型判断,而使用if,if的使用范围更广;

3、for循环控制

基本语法:

for(循环变量初始化;循环条件;循环变量迭代){

循环操作(语句);

}

for 有四要素:

(1)循环变量初始化;

(2)循环条件;

(3)循环操作;

(4)循环变量迭代;

for 循环细节:

1、循环条件是返回布尔值得表达式

2、for(循环判断条件)中得初始化和变量迭代可以写到其他地方,但是两边的分号不能省略

for(;;){
//表示无限循环
}

3、循环初始值可以有多条初始化语句,到要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开

// for 循环练习

// 打印1~100之间所有是9的倍数的整数,统计个数和总和
int count = 0;
int sum = 0;
for(int i = 1; i <= 100; i++){
    if(i % 9 == 0){
        sum = i + sum;
        count ++;
    }
}
System.out.println("一共有:"+count+"个");
System.out.println("和:"+sum);

// 输出:一共有:11个
和:594

4、while 循环控制

基本语法:

循环变量初始化;

while(循环条件){

循环体语句;

循环变量迭代;

}

while循环也要有四要素

只是四要素放的位置不一样

//while练习

// 打印1~100之间所有能被3整除的数
int i = 1;
while(i <= 100){
    if(i % 3 == 0){
        System.out.println(i);
    }
    i++;

}
// 打印40~200之间的所有偶数
int j = 40;
while (j < 200){
    if (j % 2 == 0){
        System.out.println(j);
    }
    j++;
}

5、do...while循环控制

基本语法:

循环变量初始化;

do{

循环体(语句);

循环变量迭代;

}while(循环条件);

说明:

1、do...while是关键字;

2、也要有循环四要素,只是位置不同;

3、先执行,在判断,也就是说一定会执行一次;

4、最后有一个分号;

// 打印出1~100之间能被5整除但不能被3整除的数,并求出他的个数
int k = 1;
int count = 0;
do{
    if (k % 5 == 0 && k % 3 != 0) {
        System.out.println(k);
        count++;
    }
    k++;
}while (k <= 200);
System.out.println("一共有"+count);

6、多重循环控制

介绍

1、将一个循环放在另一个循环体内,就形成了嵌套循环。

2、实际上,嵌套循环就是把内层循环当成外层循环的循环体,当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可以结束外层的当次循环,开始下一次的循环。

// 九九乘法表
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(j + "*" + i + "=" + (i * j)+"\t");
    }
    System.out.println("");
}

7、跳转控制语句-break语句

随机生成一个1~100的随机数

Math.random()生成一个大于等于0小于1的随机小数;

(int)(Math.random()*100)+1

基本语法:

break语句用于终止某一语句块的执行,一般使用在switch或者循环[for,while,do-while]中;

基本语法:

{......

break;

.......

}

基本语法:

break语句用于终止某一语句块的执行,一般使用在switch或者循环[for,while,do-while]中;

基本语法:

{......

break;

.......

}

基本语法:

break语句用于终止某一语句块的执行,一般使用在switch或者循环[for,while,do-while]中;

基本语法:

{......

break;

.......

}

break细节:

1、break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块;

2、标签的基本使用:

label1:{
label2:      {
label3:               {      break label1;

      }
}
}

(1) break语句可以指定退出哪一层;

(2)label1是标签,名字是程序员指定;

(3)break后指定哪个label就退出到哪里;

(4)如果没有指定break;默认退出最近的循环体;

8、跳转控制语句-continue语句

基本介绍:

(1)continue语句用于结束本次循环,继续执行下一次循环;

(2)continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用规则一样;

基本语法:

{...

continue;

...}

9、跳转控制语句-return语句

介绍:

return使用在方法,表示跳出所在方法,如果用在主方法(main)就是跳出程序了;

字符串的比较

推荐: 具体值放在前面,防止空指针;

equals()方法

 

String name = "张三";
if("张三".equals(name)){
    System.out.println("oooo")
}

  • 57
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值