java学习笔记day2循环结构和条件语句


一、控制流程语句

  • 顺序语句

  • 分支语句

    • if分支

    • switch选择

  • 循环语句

    • for循环

    • while循环

    • do while循环

二、简单if分支语句

简单的if分支 语法: if(逻辑条件(boolean类型)){ 满足逻辑条件执行的代码 }

案例:如果成绩大于90,奖励豪华作业题一套

案例:如果年龄大于65,可以领取养老金

案例:如果身高大于180,且体重小于180,就可以当模特

//案例1:如果成绩大于90,奖励豪华作业题一套    
System.out.println("请输入你的成绩");
int score = sc.nextInt();
if(score > 90){
    System.out.println("奖励豪华作业题一套");
}       
System.out.println("执行吗?");     
?
?
//案例2:如果年龄大于65,可以领取养老金
System.out.println("请输入你的年龄");
int age = sc.nextInt();
if(age >= 65){
    System.out.println("领取养老金");
}
?
//案例3:如果身高大于180,且体重小于180,就可以当模特     
System.out.println("请输入你的身高");
int height = sc.nextInt();
System.out.println("请输入你的体重");
int weight = sc.nextInt();
?
if(height > 180 && weight < 180){
    System.out.println("可以当模特");
}

三、if...else分支

语法: if(逻辑条件){ 满足逻辑条件执行的代码 }else{ 不满足逻辑条件执行的代码 }

案例:如果用户名为admin、密码为123456,则跳转首页,否则跳转登录页面

案例:如果身上余额大于100元。中午吃饭加个鸡腿,否则泡面

//案例:如果用户名为admin、密码为123456,则跳转首页,否则跳转登录页面
System.out.println("请输入用户名");
String username = sc.next();
System.out.println("请输入密码");
String password = sc.next();
?
if(username.equals("admin") && password.equals("123456")){
    System.out.println("跳转首页");
}else{
    System.out.println("跳转登录页面");
}       
?
//案例:如果身上余额大于100元。中午吃饭加个鸡腿,否则泡面
System.out.println("请输入你的余额");
double money = sc.nextDouble();
if(money > 100){
    System.out.println("加个鸡腿");
}else{
    System.out.println("泡面");
}

四、多重if分支

语法: if(逻辑条件1){ 满足逻辑条件1执行的代码 }else if(逻辑条件2){ //隐藏条件(不满足条件1) 满足逻辑条件2执行的代码 }else if(逻辑条件3){ //隐藏条件(不满足条件1、2) 满足逻辑条件3执行的代码 }else{ 不满足以上所有逻辑条件执行的代码 }

案例: 根据手上的余额选择购买的手机品牌 如果大于10000, 买个苹果 如果大于7000, 买个华为 如果大于5000,买个小米 如果大于3000,买个诺基亚 否则,去打公共电话

System.out.println("请输入余额");
int money = sc.nextInt();
if(money > 10000){
    System.out.println("苹果手机");
}else if(money > 7000){ //money <= 10000
    System.out.println("华为手机");
}else if(money > 5000){
    System.out.println("小米手机");
}else if(money > 3000){
    System.out.println("诺基亚手机");
}else{
    System.out.println("打公共电话");
}

五、嵌套if分支

嵌套if分支 语法: if(逻辑条件1){ if(逻辑条件2){ 满足逻辑条件1且满足条件2执行的代码 }else{ 满足逻辑条件1但不满足条件2执行的代码 } }else{ 不满足逻辑条件1执行的代码 }

案例:

学校举行跑步比赛,如果成绩在15秒以内,可以进入决赛,男的进入男子组决赛,女的进入女子组决赛

//学校举行跑步比赛,如果成绩在15秒以内,可以进入决赛,男的进入男子组决赛,女的进入女子组决赛
System.out.println("请输入你的比赛成绩");
double score = sc.nextDouble();
if(score < 15){
    System.out.println("请输入你的性别");
    String sex = sc.next();
    if(sex.equals("男")){
        System.out.println("恭喜进入男子组");
    }else{
        System.out.println("恭喜进入女子组");
    }           
}else{
    System.out.println("很遗憾你被淘汰了!!!");
}
 

六、分支语句细节

注意1: 在java中 == 比较的是内存地址,String类的equals比较的是内容 基本数据类型使用==比较。 String类型使用equals比较

注意2: 在if分支中,大括号可以省略不写,但是如果不写大括号,那么这个if分支只能控制一行代码 你不要这么写

注意3: 多重if中要将苛刻条件写前面

七、 switch分支

7.1 switch分支使用

选择分支结构: switch中的值:byte short int char String 枚举类型 switch(值){ case 值1: switch中的值与值1相等时候执行的代码 break; case 值2: switch中的值与值2相等时候执行的代码 break; case 值3: switch中的值与值3相等时候执行的代码 break; case 值4: switch中的值与值4相等时候执行的代码 break; default: switch中的值与以上所有值都不相等时候执行的代码 break; }

案例: 选择1:查询操作 选择2:增加操作 选择3:删除操作 选择4:修改操作 选择5:退出系统 选择其他:提示输入有误

System.out.println("请输入你的选择");
int option = sc.nextInt();
switch(option){
    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;
    default: 
        System.out.println("输入有误");
        break;
}

 

7.2 switch分支细节

  • switch使用细节:

    • 1、在switch中值的类型:byte short int char String 枚举类型

    • 2、在switch中case值不允许重复

    • 3、在switch中break表示结束当前switch语句

      • break可以省略不写,如果省略那么switch会一直往下执行,直到遇到下一个break;

    • 4、switch和多重if的区别:

      • 多重if中可以做关系运算,在swtich中只能做等值判断

案例:(要求选择A和a是一样的结果) 选择A: 好评 选择B: 一般 选择C: 良好 选择D: 差评

System.out.println("请输入你的选择");
String option = sc.next();
switch(option){
    case "a":               
    case "A":
        System.out.println("好评");
        break;
    case "b":               
    case "B":
        System.out.println("一般");
        break;
    case "c":               
    case "C":
        System.out.println("良好");
        break;
    case "d":               
    case "D":
        System.out.println("差评");
        break;
}
 

一、for循环

for循环语法: for(①循环初始化;②循环条件;④循环变化){ ③循环体 }

for循环的执行顺序: true 循环体 循环变化 循环结束条件..... 循环初始化 ---> 循环结束条件 false 结束循环

需求:输出100遍我喜欢java 需求:输出1-100所有的奇数 需求:输出a-z 需求:求1-100的和

//需求:输出100遍我喜欢java  
for(int i = 1;i <= 100; i++){
    System.out.println("我喜欢java"+i);
}       
?
//需求:输出1-100所有的奇数
for(int i = 1; i < 101; i++){
    if(i % 2 != 0){
        System.out.println(i);
    }           
}       
for(int i = 1; i < 101; i=i+2){
    System.out.println(i);
}       
//需求:输出a-z  
for(char i = 'a' ; i <= 'z' ; i++){
    System.out.println(i);
}
?
//需求:求1-100的和 1+2+3+4... 
int sum = 0;
for(int i = 1 ; i <= 100 ; i++){
    //i = 1;
    //i = 2;
    sum = sum + i;
}
System.out.println(sum);
 

二、 while循环

while循环语法: while(①循环条件){ ②循环体 }

while执行顺序: true 循环体 循环条件...... 循环条件 false 结束循环

1、打印100遍我喜欢MySQL 2、求得一个数是几位数?

//1、打印100遍我喜欢MySQL      
int i = 1;
while(i <= 100){
    System.out.println("我喜欢MySQL"+i);
    i++;
}
?
//2、求1~100的和
int i = 1;
int sum = 0;
while(i < 101){         
    sum = sum + i;
    i++;
}
System.out.println(sum);
?
?
//3、求得一个数是几位数?  分析:将这个数循环除以10记录运算了几次
int num = 12345;
int temp = num;
if(num == 0){
    System.out.println(num+"是1位数");
}else{
    //定义一个变量用于保存循环的次数
    int count = 0;
    while(num != 0){
        //将这个数循环除以10
        num = num / 10;
        //每次循环次数+1
        count++;
    }
    System.out.println(temp+"是"+count+"位数");
}
 

三、do while循环

do..while 循环语法: do{ 循环体 }while(循环条件);

do..while 执行顺序 true 循环体 循环条件.... 循环体 循环条件 false 结束循环

案例:打印100遍我喜欢编程 案例:学生根据老师的评语,是否继续敲代码,直到测评为ok,就结束

//案例:打印100遍我喜欢编程
int i = 1;
do{
    System.out.println("我喜欢编程");
    i++;
}while(i <= 100);
?
?
//案例:学生根据老师的评语,是否继续敲代码,直到测评为ok,就结束
Scanner sc = new Scanner(System.in);
String result;
do{
    System.out.println("敲代码ing...你看我的代码怎么样???");
    System.out.println("评价:");          
    result = sc.next();         
}while(!result.equals("ok"));

四、 break和continue关键字

break 表示结束当前循环

continue 表示结束本次循环,继续下一次循环

注意:紧跟着break和continue后面不能写任何代码

案例:从1加到100,输出和大于888的那个数

案例:输出100以内,所有的不是3的倍数

综合案例:将输入的内容,进行输出,如果输入886,结束聊天。如果输入敏感词汇,不输出显示

//案例:从1加到100,输出和大于888的那个数
//定义变量保存总和
int sum = 0;
for(int i = 1; i <= 100; i++){          
    sum = sum + i;
    if(sum > 888){
        System.out.println(i);
        break; //表示结束当前循环
        //System.out.println("能执行吗??"); //编译报错
    }
    //System.out.println("能执行吗??");  可以写        
}       
?
//案例:输出100以内,所有的不是3的倍数
for(int i = 1; i <= 100 ; i++){
    if(i % 3 == 0){
        continue;//结束本次循环继续下次循环
    }       
    System.out.println(i);          
}
?
?
//综合案例:将输入的内容,进行输出,如果输入886,结束聊天。如果输入敏感词汇,不输出显示
Scanner sc = new Scanner(System.in);
?
while(true){
    String word = sc.next();
    if(word.equals("886")){
        break;
    }           
    if(word.equals("WC")||word.equals("SB")){
        System.out.println("***");
        continue;
    }
    System.out.println(word);           
}
?
Scanner sc = new Scanner(System.in);
for(;;){
    String word = sc.next();
    if(word.equals("886")){
        break;
    }           
    if(word.equals("WC")||word.equals("SB")){
        System.out.println("***");
        continue;
    }
    System.out.println(word);               
}