选择分支结构
概念:根据已知条件进行逻辑判断,满足条件后执行相应操作。
基本if选择结构
语法:
if(布尔表达式){
//代码块
}
执行流程:
- 对布尔表达式进行判断
- 结果为true,则先执行代码块,再执行后续代码
- 结果为false,则跳过跳过代码块,直接执行后续代码
package com.zcs.lession04.Demo;
/**
*
* 基本if选择结构
*
* */
import java.util.Scanner;
public class Demo11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("手机响了,起床吗(1.起床,其他选择继续睡)");
int chose = input.nextInt();
// chose == 1
// boolean flag = chose == 1;
// if基本选择结构
if (chose == 1) {
// true
System.out.println("今天要上课了赶紧起来");
}
System.out.println("程序结束");
}
}
if else 选择结构
语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
}
执行流程:
- 对布尔表达式进行判断。
- 结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
- 结果为false,则先执行代码块2,再退出整个结构,执行后续代码
package com.zcs.lession04.Demo;
import java.util.Scanner;
/**
* if-else 结构
* */
public class Demo12 {
public static void main(String args) {
Scanner input = new Scanner(System.in);
//输入多少钱
System.out.println("输入支付宝有多少钱");
//moeny >= 100 喝稀饭 喝凉水
int money = input.nextInt();
//判断
if(money>=100) {
System.out.println("哥是个有钱人,喝稀饭");
}else {
System.out.println("哥是个穷鬼,喝凉水");
}
System.out.println("程序结束");
}
}
多重if选择结构
语法:
if(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}
package com.zcs.lession04.Demo;
/**
*
* 多重if选择结构
*
* */
import java.util.Scanner;
public class Demo13 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入购车预算");
//int 单位为w
int money = input.nextInt();
//判断
if(money>100) {
System.out.println("有钱人购买奔驰S级");
}else if(money>50) {
System.out.println("有钱人购买宝马5系");
}else if(money>10) {
System.out.println("一般人购买比亚迪宋");
}else{
System.out.println("没有10万是吧,你去买个凤凰牌自行车");
}
System.out.println("程序结束");
}
}
package com.zcs.lession04.demo;
public class Demo5 {
public static void main(String[] args) {
int money = 100;
//多重if
if(money >= 500) {
System.out.println("你是个有钱人");
}else if(money >= 100){
System.out.println("你是个有点钱的人");
}else if(money >= 50){
System.out.println("你是个穷人");
}else if(money >= 10){
System.out.println("你是个穷鬼");
}else {
System.out.println("你是个富有财富精神的人");
}
//多个if
if(money >= 500) {
System.out.println("你是个有钱人");
}
if(money >= 100) {
System.out.println("你是个有点钱的人");
}
if(money >= 50) {
System.out.println("你是个穷人");
}
if(money >= 10) {
System.out.println("你是个穷鬼");
}
if(money < 10) {
System.out.println("你是个富有财富精神的人");
}
}
}
嵌套if选择结构
语法:
if(外层循环表达式){
if(内层循环表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}
执行流程:
当外层条件满足时,再判断内层条件
注意:
-
一个选择结构中,可嵌套另一个选择结构。
-
嵌套格式正确的情况下,支持任意组合。
内层循环控制行,外层循环控制列
分支结构
等值判断
语法:
switch(变量|表达式){ case 值1: 逻辑代码1; case 值2: 逻辑代码2; case 值n: 逻辑代码n; default: 未满足时的逻辑代码;}
可判断的类型: byte、short、int 、char、String(JDK7之后加入)
执行流程:
- 如果变量中的值等于值1,则执行逻辑代码1;
- 如果变量中的值等于值2,则执行逻辑代码2;
- 如果变量中的值等于值n,则执行逻辑代码n;
- 如果变量中的值没有匹配的case值时,执行default中的逻辑代码。
注意当匹配case执行后,不会自动退出整个结构,而是向下执行
break关键字可在匹配的case执行后,跳出整个结构
适用等值判断
package com.zcs.lession04.demo;/** * switch 分支结构 * */public class Demo1 { public static void main(String[] args) { String money = "哇哈哈"; // 分支结构 switch (money) { case "a": System.out.println("1万"); break; case "2": System.out.println("2万"); break; case "c": System.out.println("3万"); break; case "4": System.out.println("4万"); break; default: System.out.println("哈也不是"); } System.out.println("======================"); // 多重if if (money.equals("a")) { System.out.println("1万"); } else if (money.equals("2")) { System.out.println("2万"); } else if (money.equals("c")) { System.out.println("3万"); } else if (money.equals("4")) { System.out.println("4万"); } else { System.out.println("啥也不是"); } }}
package com.zcs.lession04.demo;import java.util.Scanner;/** * 公司季度财务报告 * */public class Demo2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("大佬你要的是那个季度的财务报告啊(1~12)"); int chose = input.nextInt(); switch(chose) { case 1 : case 2 : case 3 : System.out.println("第一季度的财务报告"); break; case 4 : case 5 : case 6 : System.out.println("第二季度的财务报告"); break; case 7 : case 8 : case 9 : System.out.println("第三季度的财务报告"); break; case 10 : case 11 : case 12 : System.out.println("第四季度的财务报告"); break; default: System.out.println("大佬该去医院看脑子了"); } }}
package com.zcs.lession04.demo;import java.util.Scanner;public class Demo3 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入数字"); int num = input.nextInt(); switch(num) { 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; case 6: System.out.println("今天星期六"); break; case 7: System.out.println("今天星期天"); break; default: System.out.println("该去看脑子了"); } }}
package com.zcs.lession04.demo;import java.util.Scanner;/** * xxx学员管理系统的菜单栏目 * * */public class Demo4 { public static void main(String[] args) { System.out.println("*****************************欢迎使用xxx学员管理系统*************************"); System.out.println("1.查询学员数据\t2.新增学员数据\t3.修改学员数据\t4.删除学员数据\t5.录入学员成绩\t6.退出系统"); System.out.println("******************************请输入你要执行的操作***************************"); Scanner input = new Scanner(System.in); int chose = input.nextInt(); switch(chose) { 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; case 6 : System.out.println("88了您勒"); break; default: System.out.println("真心祝您身体健康"); break; } }}
局部变量
概念:声明在方法内部的变量,必须先赋值再使用
作用范围:定义行开始到所在代码块结束
注意:多个变量,在重合的作用范围内,不可出现重名(命名冲突)
总结
-
基本if选择结构
if(){
}
-
if else选择结构
if(){
}else{
}
-
多重if选择结构
if(){
}else if(){
}else if(){
}else{}
-
嵌套if选择结构
if(){
if(){
}}
-
switch分支结构
switch(){
case1:
break;
case2:
break;
default
}
-
局部变量
声明在方法内部的变量,必须先赋值再使用
作业
选择分支结构的作业
基础作业
package com.zcs.work04;
//1.导入util工具包中的Scanner类
import java.util.Scanner;
/**
* 输入张三的Java成绩,大于80分,全部鼓掌
*/
public class Demo1 {
public static void main(String[] args) {
// 2.声明一个Scanner类型的变量
Scanner input = new Scanner(System.in);
// 3.输入提示 请输入一个JAVA成绩:
System.out.println("请输入一个JAVA成绩:");
// 4.定义一个double类型的变量 接收键盘输入
double score = input.nextInt();
// 5.判断score是否大于80
if (score > 80) {
// 判断结果为true 输出 全班鼓掌!!!
System.out.println("全班鼓掌!!!");
}
// 判断结果为false 输出 程序结束
System.out.println("程序结束!!");
}
}
package com.zcs.work04;
//1、导入java.util包下的Scanner类
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
// 2、声明一个Scanner类型的变量 input
Scanner input = new Scanner(System.in);
// 3、输入提示 输入一个Java成绩:
System.out.println("输入一个Java成绩:");
// 4、定义一个double类型的变量 接收键盘输入
double javaScore = input.nextDouble();
// 3、输入提示 输入一个php成绩:
System.out.println("输入一个php成绩:");
// 4、定义一个double类型的变量 接收键盘输入
double phpScore = input.nextDouble();
// 5、判断 java成绩和php成绩是否都是80分以上
if (javaScore > 80 && phpScore > 80) {
// 判断结果为true 输出全班鼓掌!!!
System.out.println("全班鼓掌!!!");
} else {
// 判断结果为false 输出鼓励张三继续努力
System.out.println("鼓励张三继续努力!");
}
System.out.println("程序结束!");
}
}
package com.zcs.work04;
//1、导入包
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
//2、声明变量
Scanner input = new Scanner(System.in);
//3、提示输入
System.out.println("请输入考试成绩进行测评:");
//4、接收控制台输入
double score = input.nextDouble();
//5、判断
if(score >= 80) {
//成绩大于80
System.out.println("考试成绩良好");
}else if (score >= 60 ) {
//成绩 小于80 大于等于60
System.out.println("考试成绩中等");
}else {
//成绩 小于60
System.out.println("考试成绩不合格,多加努力");
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导包
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入一个赛跑成绩:");
// 4、接收控制台输入
double score = input.nextDouble();
// 5、判断 有没有进入决赛
if (score < 10) {
// 成绩 小于10秒 进入决赛
System.out.println("进入总决赛,请输入性别");
// 接收一个字符串
String sex = input.next();
if (sex.equals("男")) {
// true 男性
System.out.println("进入男子组决赛");
} else {
// false 女性
System.out.println("进入女子组决赛");
}
} else {
// 成绩 大于10秒 没有进入决赛淘汰
System.out.println("很遗憾成绩没有进入总决赛淘汰!");
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导包
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
//2、声明变量
Scanner input = new Scanner(System.in);
//3、提示输入购物积分
System.out.println("输入您的购物积分:");
//4、接收控制台输入
int integral = input.nextInt();
//3、提示输入购物金额
System.out.println("输入您的购物金额:");
//4、接收控制台输入
double num1 = input.nextDouble();
//声明一个double 类型的变量 方便进行循环内的运算
double num2 = 0.0;
//5、判断 购物积分
if(integral < 2000) {
/*
* 积分小于2000
* 购物金额打九折
* 结账余额 num2 保存 打折后的余额
* */
num2 = num1 * 0.9;
System.out.println("您的结账余额为:"+num2);
}else if(integral <= 4000) {
// 购物积分 大于2000 小于等于4000 打八折
num2 = num1 * 0.8;
System.out.println("您的结账余额为:"+num2);
}else if(integral < 8000) {
// 购物积分 大于4000 小于等于8000 打七折
num2 = num1 * 0.7;
System.out.println("您的结账余额为:"+num2);
}else{
// 购物积分 大于8000 打六折
num2 = num1 * 0.6;
System.out.println("您的结账余额为:"+num2);
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导包
import java.util.Scanner;
public class Demo6 {
public static void main(String[] args) {
//2、声明变量
Scanner input = new Scanner(System.in);
//3、提示输入
System.out.println("输入数字(1~7之内的数字)");
//4、接收键盘的值
int num = input.nextInt();
//5、判断
switch(num) {
case 1:
//num为1 匹配 case 1
System.out.println("今天星期一");
break; //break 跳出switch判断
case 2:
//num为2 匹配 case 2
System.out.println("今天星期二");
break;
case 3:
//num为3 匹配 case 3
System.out.println("今天星期三");
break;
case 4:
//num为4匹配 case 5
System.out.println("今天星期四");
break;
case 5:
//num为5 匹配 case 5
System.out.println("今天星期五");
break;
case 6:
//num为6 匹配 case 6
System.out.println("今天星期六");
break;
case 7:
//num为7 匹配 case 7
System.out.println("今天星期天");
break;
default: //输入了小于1或者大于7的数字提示错误
System.out.println("输入了一个不符合规范的数字");
}
System.out.println("程序结束!!");
}
}
package com.zcs.work04;
//1、导入包
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
// 2、创建Scanner变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入一个成绩:");
// 4、接收数据
double score = input.nextDouble();
// 5、判断输入的分数是否满分 score == 100
if (score == 100) {
System.out.println("成绩满分!!!");
}
// 6、 程序结束
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导入包
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入一个成绩:");
// 4、接收数据
double score = input.nextDouble();
// 5、判断
if (score == 100) {
// score 为 100 的时候成绩满分
System.out.println("成绩满分!!");
} else {
// score 不为100 时 输出成绩不为满分加油
System.out.println("成绩不为满分加油");
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导入包
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入你有多少万金额");
// 4、接收数据
double money = input.nextDouble();
// 5、判断
if (money > 100) {
// money 大于100万时 推荐购买奔驰S级
System.out.println("推荐您购买奔驰S级");
} else if (money > 50) {
// money 小于等于100万 大于50万 推荐购买宝马5系
System.out.println("推荐您购买宝马5系");
} else if (money > 10) {
// money 小于等于50万 大于10万 推荐购买奥迪A4L
System.out.println("推荐您购买奥迪A4L");
} else if (money < 10) {
// money 小于10万时 推荐购买捷安特自行车
System.out.println("推荐您购买捷安特自行车");
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导入包
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("输入百米赛跑的成绩:");
// 4、接收数据
double score = input.nextDouble();
// 5、判断
if (score < 10) {
// 当成绩小于 10秒时 进入总决赛
System.out.println("恭喜您,进入总决赛!!");
// 3、提示输入
System.out.println("请输入性别:");
// 4、接收数据
char sex = input.next().charAt(0);
// 5、判断sex 是否为 男
if (sex == '男') {
// 如果为true 进入男子组决赛
System.out.println("进入男子组决赛");
} else {
// 如果为false 进入女子组决赛
System.out.println("进入女子组决赛");
}
} else {
// 当成绩大于等于10秒时,很遗憾被淘汰
System.out.println("很遗憾被淘汰!!");
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导入包
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入金额");
// 4、接收数据
double money = input.nextDouble();
// 5、判断
if (money >= 100) {
// 当金额大于等于100 的时候坐车上学
System.out.println("坐车上学");
if (money < 1000) {
// 金额小于1000 滴滴拼车
System.out.println("滴滴拼车!");
} else {
// 金额大于等于1000 曹操专车
System.out.println("曹操专车!");
}
} else {
// 当金额小于100时 没钱就走路
System.out.println("没钱就走路");
}
System.out.println("程序结束");
}
}
package com.zcs.work04;
//1、导包
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
//2、声明变量
Scanner input = new Scanner(System.in);
//3、提示输入
System.out.println("输入数字");
//4、接收键盘的值
int num = input.nextInt();
//5、判断
switch(num) {
case 1:
//num为1 匹配 case 1
System.out.println("今天星期一");
break; //break 跳出switch判断
case 2:
//num为2 匹配 case 2
System.out.println("今天星期二");
break;
case 3:
//num为3 匹配 case 3
System.out.println("今天星期三");
break;
case 4:
//num为4匹配 case 5
System.out.println("今天星期四");
break;
case 5:
//num为5 匹配 case 5
System.out.println("今天星期五");
break;
case 6:
//num为6 匹配 case 6
System.out.println("今天星期六");
break;
case 7:
//num为7 匹配 case 7
System.out.println("今天星期天");
break;
default: //输入了小于1或者大于7的数字提示错误
System.out.println("输入了一个错误的日期");
}
System.out.println("程序结束!!");
}
}
分支结构的额外作业
package practice04;
//1、导包
import java.util.Scanner;
/*
* 1、输入本月的收入,
* 如果超过10000,输出:今晚去吃红鼎豆捞
* 如果超过5000,输出:今晚去吃海陆空
* 如果超过3000,输出:今晚去吃大排档
* 否则输出:家里还有泡面吗
* */
public class Demo1 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入 本月收入
System.out.println("请输入本月的收入:");
// 4、接收 输入的数值
double salary = input.nextDouble();
// 5、判断 本月收入
if (salary > 10000) {
// 超过 10000 今晚去吃红鼎豆捞!
System.out.println("今晚去吃红鼎豆捞!");
} else if (salary > 5000) {
// 超过5000 小于10000 今晚去吃海陆空!
System.out.println("今晚去吃海陆空!");
} else if (salary > 3000) {
// 超过3000 小于5000 今晚去吃大排档
System.out.println("今晚去吃大排档!");
} else {
// 小于等于3000 家里还有泡面吗~
System.out.println("家里还有泡面吗~");
}
System.out.println("程序结束...");
}
}
package practice04;
//1、导入包
import java.util.Scanner;
/*
* 2、输入年份,判断其是否闰年。
* 解题思路 :
* (1) 输入年份
* (2) 通过闰年的条件能被4整除,但不能被100整除;或能被400整除,判断年份是否时闰年。
* (3) 输出结果。
* */
public class Demo2 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入一个年份:");
// 4、接收数据
int month = input.nextInt();
// 5、判断 能被4整除,但不能被100整除;或能被400整除
if ((month % 4 == 0 && month % 100 != 0 )|| month % 400 == 0) {
System.out.println(month + "是闰年");
} else {
System.out.println("不是闰年");
}
System.out.println("程序结束...");
}
}
package practice04;
//1、导入包
import java.util.Scanner;
/*
* 4、自动售货机输入要买的商品编号
* 编号为1,输出:你要买的是可乐
* 编号为2,输出:你要买的是雪碧
* 编号为3,输出:你要买的是绿茶
* 编号为4,输出:你要买的是矿泉水
* 编号为5,输出:你要买的是冰红茶
* 否则输出:你要买的商品不存在
* */
public class Demo3 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入商品编号:");
// 4、接收数据
int num = input.nextInt();
/*
* 5、判断 switch 判断(1~5)则可以输出商品 不在范围内则输出你要买的商品不存在
*/
switch (num) {
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;
}
System.out.println("程序结束...");
}
}
package practice04;
//1、导入包
import java.util.Scanner;
/*
* 5、的士起步价(2公里以内)为7元,超过2公里的按照每公里3元计算。要求根据路程计算费用。
* 解题思路:
*(1) 输入路程
*(2) 根据条件计算费用
*(3) 输出费用。
* */
public class Demo4 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("输入的士驾驶的路程:");
// 4、接收数据
double road = input.nextDouble();
// 5、判断
if(road < 2) {
//当路程小于 2 公里时输出 7元
System.out.println("2公里内费用是7元");
}else {
/*
* 当路程大于等2公里时 先用路程减去起步价的路程
* 剩下的路程乘3 的结果再加上起步价的价格
*/
road = road - 2;
double money = road * 3 + 7;
System.out.println("坐的士的费用为:"+money);
}
System.out.println("程序结束...");
}
}
package practice04;
//1、导入包
import java.util.Scanner;
/*
* 根据性别和体重计算输血量。女性体重不超过50kg的输血量为200毫升,否则250毫升;男性不超过60kg的输血量为250毫升,否则300毫升。
* 解题思路 :
*(1) 输入性别。
*(2) 输入体重。
*(3) 女性体重不超过50kg的输血量为200毫升,否则250毫升;男性不超过60kg的输血量为250毫升,否则300毫升。
*(4) 输出结果。
* */
public class Demo5 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入性别:");
// 4、接收数据
char sex = input.next().charAt(0);
// 5、判断
if (sex == '女') {
// 3、提示输入
System.out.println("请输入体重:");
// 4、接收数据
int weight = input.nextInt();
//5、判断
if (weight <= 50) {
// 当性别为女 体重小于等于50 输血量为200毫升
System.out.println("输血量为200毫升");
} else {
// 当性别为女 体重大于50 输血量为250毫升
System.out.println("输血量为250毫升");
}
} else {
// 3、提示输入
System.out.println("请输入体重:");
// 4、接收数据
int weight = input.nextInt();
//5、判断
if (weight <= 60) {
// 当性别为男 体重小于等于60 输血量为250毫升
System.out.println("输血量为250毫升");
} else {
// 当性别为男 体重大于60 输血量为300毫升
System.out.println("输血量为300毫升");
}
}
System.out.println("程序结束...");
}
}
package practice04;
//1、导入包
import java.util.Scanner;
/*
* 四则运算器
* 题目要求:要求操作符和两个操作数,执行相应的四则运算。
* 解题思路 :
*(1) 输入要进行运算的符号 + - * /
*(2)输入要运算的2个数值
*(3)根据 + - * / 判断做 2个数的对饮运算
* */
public class Demo6 {
public static void main(String[] args) {
// 2、声明变量
Scanner input = new Scanner(System.in);
// 3、提示输入
System.out.println("请输入第一个操作数:");
// 4、接收数据
double num1 = input.nextDouble();
// 3、提示输入
System.out.println("请输入第二个操作数:");
// 3、提示输入
double num2 = input.nextDouble();
// 3、提示输入
System.out.println("请输入(+、-、*、/)操作符:");
// 3、提示输入
String s = input.next();
// 5、判断
// if (s.equals("+")) {
// // equals()判断为 + 时进行加法运算
// System.out.println("进行加法运算");
// System.out.println("结果为:" + (num1 + num2));
// } else if (s.equals("-")) {
// // equals()判断为 - 时进行减法运算
// System.out.println("进行减法运算");
// System.out.println("结果为:" + (num1 - num2));
// } else if (s.equals("*")) {
// // equals()判断为 * 时进行乘法运算
// System.out.println("进行乘法运算");
// System.out.println("结果为:" + (num1 * num2));
// } else if (s.equals("/")) {
// // equals()判断为 / 时进行除法运算
// System.out.println("进行除法运算");
// System.out.println("结果为:" + (num1 / num2));
// } else {
// // 当输入的操作符不是(+、-、*、/)时 提示输入的操作符有误
// System.out.println("输入的操作符有误请重新运行");
// }
switch(s) {
case "+":
System.out.println(num1+"+"+num1+"="+(num1+num2));
break;
case "-":
System.out.println(num1+"-"+num2+"="+(num1-num2));
break;
case "*":
System.out.println(num1+"*"+num2+"="+(num1*num2));
break;
case "/":
System.out.println(num1+"/"+num2+"="+(num1/num2));
break;
default:
System.out.println("不好意思,您输入的操作符有误");
}
System.out.println("程序结束...");
}
}
package practice04;
/*
* 使用循环和if,输出1-100,
* 除开所有7的数值,
* 如果7,17,27,37
* 这些,还有7的倍数7,14,21
* 都不输出
* */
public class Demo7 {
public static void main(String[] args) {
int ge = 0;
int shi = 0;
for (int i = 1; i <= 100; i++) {
ge = i % 10; // int类型的ge保存个位
shi = i / 10 % 10; // int类型的shi保存十位
/*
* 当个位 == 7 或者 十位 == 7 或者是 7的倍数时 用continue 跳过本次循环
*/
if (ge == 7 || shi == 7 || i % 7 == 0) {
continue;
}
System.out.println(i);
}
}
}
循环的作业
package practice05;
/*
* 一球从100米高度自由落下,每次落地后反跳回原来高度的一半;
* 再落下,求它在第10次落地时,从经过了多少米?
* 第十次反弹多高
* */
public class Demo1 {
public static void main(String[] args) {
//第一次球下落的高度
double num1 = 100;
//用来计算球 来回反弹 的路程
double num2 = 0;
//循环
for(int i = 1; i <= 10; i++) {
//计算保存 球每次到原来高度一半 的距离
num1 = num1/2;
//输出提醒
System.out.println("第" + i + "反弹的高度:" + num1+"米");
// 将 球来回反弹的距离 进行求和
num2 = num2 + 2*num1;
}
//球来回反弹的距离加上第一次球下落的高度
System.out.println("球经过了"+(num2+100)+"米");
}
}
package practice05;
/*
*
* 求整数1~100的累加值,但要求跳过所以个位数为3的数
* */
public class Demo2 {
public static void main(String[] args) {
//循环初始条件
int num1 = 1;
//用于求和的变量
int sum = 0;
//循环
while(num1 <= 100) {
//判断
if(num1%10 != 3) {
//将所以个位数不为3的进行求和操作
sum=sum+num1;
}
//迭代操作
num1++;
}
//输出1~100个位数不为3的数的累加和
System.out.println("跳过个位数为3的1~100的累加和:"+sum);
}
}
package practice05;
/*
* 1~100找出能被5或6整除,但不能被两者同时整除的数
* */
public class Demo3 {
public static void main(String[] args) {
//循环初始条件
int num1 = 1;
//用于求和的变量
int sum = 0;
//循环
while(num1 <= 100 ) {
//判断 所以能被 5 或者 能被6整除的所以数字
if( num1%5 ==0 || num1% 6== 0 ) {
//判断 所以能被5并且能被6整除的数字 进行取反判断 除去这些数字
if(!(num1%5 == 0 && num1%6 == 0)) {
//循环操作
System.out.println(num1);
}
}
//循环增量
num1++;
}
}
}
package practice05;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
//声明Scanner 变量
Scanner input = new Scanner(System.in);
//定义一个int类型的随机数 Math.random()-> 0~0.9999999..之间的随机数
int number =(int)(Math.random()*100)+1;
//写一个死循环 判断
while(true) {
//提示输入
System.out.println("请输入一个数字:");
//接收键盘输入的值
int num1 = input.nextInt();
//判断输入的值 如果等于 则跳出死循环
if(num1 == number) {
System.out.println("恭喜您猜对了!");
break;
//如果输入的值小于随机数 跳过本次循环
}else if(num1 > number) {
System.out.println("抱歉您猜大了!");
continue;
//如果输入的值大于随机数 跳过本次循环
}else{
System.out.println("抱歉您猜小了!");
continue;
}
}
}
}
package practice05;
import java.util.Scanner;
/*
* 猜拳 人和电脑分别出 剪刀(1)、石头(2)、布(3)
* 直到人战胜电脑,游戏结束;
* */
public class Demo5 {
public static void main(String[] args) {
//定义一个 flag = true 用来死循环
boolean flag = true;
//声明Scanner 变量
Scanner input = new Scanner(System.in);
//提示 输入
System.out.println("开始猜拳!");
//死循环
do {
//接收 键盘输入的值
System.out.println("请输入出的东西(1、石头 2、剪刀 3、布)");
int people = input.nextInt();
//产生随机数 因为随机数在 死循环里 所以每一次的值都不一样
int number = (int) (Math.random() * 3) + 1;
if (people>0 &&people<=3){
//输入的数与随机数相等 平局
if (people == number) {
System.out.println("平局!");
//按照1、剪刀 2、石头 3、布 的规则进行让玩家胜利的条件判断
} else if (people == 1 && number == 3 || people == 2 && number == 1 || people == 3 && number == 1) {
System.out.println("玩家胜利!");
flag = false;
//除了 平局 和电脑胜利其他都是玩家胜利
} else {
System.out.println("电脑胜利!");
}
}else {
//if判断 必须输入0~3之间的数字 //可以省略不写
System.out.println("输入错误,请重新输入!!");
//让死循环继续
flag = true;
}
} while (flag);
System.out.println("程序结束...");
}
}
package practice05;
/*
*
* 3、输出100~1000的所有末尾为8的数字。(可扩展,100-1000里面所有有8的都输出)
* 解题思路 :
* (1) 先获取各位数(i%10)即可获取个数的数据,在判断是否为8
* (2)输出符合条件的数据
* */
public class Demo6 {
public static void main(String[] args) {
//循环
for (int i = 1; i <= 1000; i++) {
//取出所有个位
int ge = i % 10;
//判断 个位的数字是否为8
if (ge == 8) {
//是8则输出
System.out.println(i);
}
}
System.out.println("===================");
for (int i = 1; i <= 1000; i++) {
//取出所有百位、十位、个位
int bai = i / 100 % 10;
int shi = i / 10 % 10;
int ge = i % 10;
//判断所有 百位为8或者十位为8或者个位为8的数
if (bai == 8 || shi == 8 || ge == 8) {
//输出判断的结果
System.out.println(i);
}
}
}
}
package practice05;
/*
* 使用循环和if,输出1-100,除开所有7的数值,
* 如果7,17,27,37这些,
* 还有7的倍数7,14,21都不输出
*
* */
public class Demo7 {
public static void main(String[] args) {
//循环判断
for (int i = 1; i <= 100; i++) {
//取出所有 十位、个位、
int ge = i % 10;
int shi = i / 10 % 10;
//个位为7或者十位为7或者 是7的倍数判断出 然后进行取反操作
if (!(ge == 7 || shi == 7 || i % 7 == 0)) {
//输出 和昨天的最后一题一样 但是今天的用了取反操作 昨天用了continue关键字
System.out.println(i);
}
}
}
}