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); }