例:判断是否为一个三角形
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入三个数"); // 提示用户输入数据
int number = scanner.nextInt(); // 用户输入的第一个值
int newNumber = scanner.nextInt(); // 用户输入的第二个值
int sum = scanner.nextInt(); // 用户输入的第三个值
int a = number; // 将用户输入的第一个数赋值给a
int b = newNumber; // 将用户输入的第二个数赋值给b
int c = sum; //将用户输入的第三个数赋值给c
if (a + b > c && b + c > a && c + a > b) { // 判断任意两边的值相加是否大于第三边,三项同时满足执行是,不满足执行否
System.out.println("是一个三角形");
} else {
System.out.println("不是一个三角形");
}
//以上存在代码冗余,3至8行的代码可以进行简写
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入三个数"); // 提示用户输入数据
int a = scanner.nextInt(); // 用户输入的第一个值后 立马将值赋给a
int b= scanner.nextInt(); // 用户输入的第二个值后 立马将值赋给b
int c = scanner.nextInt(); // 用户输入的第三个值后 立马将值赋给c
if (a + b > c && b + c > a && c + a > b) { // 判断任意两边的值相加是否大于第三边,三项同时满足执行是,不满足执行否
System.out.println("是一个三角形");
} else {
System.out.println("不是一个三角形");
}
多分支
if else if
多分支 n选1
if(条件A){
//满足A做A事
}else if(条件B){
//满足B做B事
}else if(条件C){
//满足C做C事
}else{
//什么条件都不符合,就执行此项
}
例:输入成绩 判断优、良、差、不及格
//输入成绩 判断优、良、差、不及格
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入你的成绩"); // 提示用户输入数据
int score = scanner.nextInt();// 将用户输入的值立马赋值给score
if (score >= 80) { //判断用户输入的值是否大于等于80,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("你的成绩为优");
} else if (score >= 70) { //判断用户输入的值是否大于等于70,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("你的成绩为良");
} else if (score >= 60) { //判断用户输入的值是否大于等于60,若满足则执行输出语句,不满足则执行下面的else语句
System.out.println("你的成绩为差");
} else { //判断用户输入的值是否小于60,若满足则执行输出语句
System.out.println("你的成绩为不合格");
}
例:输入星期几 判断在一周内做了什么
// 输入星期几 判断在一周内做了什么
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入星期几"); // 提示用户输入数据
int date = scanner.nextInt();// 将用户输入的值立马赋值给date
if (date == 1) { //判断用户输入的值是否等于1,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("玩游戏");
} else if (date == 2) { //判断用户输入的值是否等于2,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("日常洗漱");
} else if (date == 3) { //判断用户输入的值是否等于3,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("骑车");
} else if (date == 4) { //判断用户输入的值是否等于4,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("煮饭");
} else if (date == 5) { //判断用户输入的值是否等于5,若满足则执行输出语句,不满足则执行下面的else if 语句
System.out.println("下棋");
} else if (date == 6) { //判断用户输入的值是否等于6,若满足则执行输出语句,不满足则执行下面的else语句
System.out.println("睡觉");
} else if (date == 7){ //判断用户输入的值是否等于7,若满足则执行输出语句,不满足则执行下面的else 语句
System.out.println("逛公园");
}else {
System.out.println("一周只有七天哟!");
}
switch
属于多分支的一种
//语法
switch(表达式/要去匹配的内容[是满足A还是B]){
case 值A:
满足A做A事;
break;//退出
case 值B:
满足B做B事;
break;//退出
default:
什么条件都不满足,执行此项;
break;//退出
}
例:输入123为春天 456为夏天 789为秋天 10 11 12为冬天
//输入123为春天 456为夏天 789为秋天 10 11 12为冬天
//方法一(建议使用此方法):
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入月份"); // 提示用户输入数据
int month = scanner.nextInt();// 将用户输入的值立马赋值给month
switch (month) { //圆括号内写匹配的内容[上面定义的month值] month
case 1:
case 2:
case 3:
System.out.println("是春天");
break; // 当有多个case干同一件事时可以共用一个 break,跳出
case 4:
case 5:
case 6:
System.out.println("是夏天");
break;// 当有多个case干同一件事时可以共用一个 break,跳出
case 7:
case 8:
case 9:
System.out.println("是秋天");
break;
case 10:
case 11:
case 12:
System.out.println("是冬天");
break;// 当有多个case干同一件事时可以共用一个 break,跳出
}
//方法二(简写 存在版本不兼容的情况,不推荐):
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入月份"); // 提示用户输入数据
int month = scanner.nextInt();// 将用户输入的值立马赋值给month
switch (month) {//圆括号内写匹配的内容[上面定义的month值] month
case 1,2,3: //逗号将多个 case 分隔开 ,但要注意版本可能不兼容
System.out.println("是春天");
break;//退出
case 4,5,6: //逗号将多个 case 分隔开 ,但要注意版本可能不兼容
System.out.println("是夏天");
break;//退出
case 7,8,9: //逗号将多个 case 分隔开 ,但要注意版本可能不兼容
System.out.println("是秋天");
break;
case 10,11,12://逗号将多个 case 分隔开 ,但要注意版本可能不兼容
System.out.println("是冬天");
break;//退出
}
注:当有多个case干同一件事时可以共用一个 break,defalut也可以根据自己的需求来确定是否书写。 case 的顺序是可以调换的
例:做选择 按1:三角形面积 按2:长方形面积 按3:圆形面积
// 做选择 按1:三角形面积 按2:长方形面积 按3:圆形面积
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("你选择的是:"); // 提示用户输入选择
int choose = scanner.nextInt();// 将用户输入的值立马赋值给choose
switch (choose) {
case 1:
System.out.println("求三角形的面积"); // 提示用户选择1是求三角形的面积
System.out.println("请输入三角形的底:" ); // 提示用户输入三角形的底
int d = scanner.nextInt(); // 将用户输入底的值立马赋给 d
System.out.println("请输入三角形的高:"); // 提示用户输入三角形的高
int h = scanner.nextInt(); // 将用户输入高的值立马赋给 h
double s = d * h / 2; // 根据用户输入的数据算出三角形的面积
System.out.println("三角形的面积是:" + s); // 打印三角形的面积
break;//退出
case 2:
System.out.println("求长方形的面积");// 提示用户选择2是长方形的面积
System.out.println("请输入长方形的宽:"); // 提示用户输入长方形的宽
int a = scanner.nextInt(); // 将用户输入宽的值立马赋给 a
System.out.println("请输入长方形的高:"); // 提示用户输入长方形的高
int b = scanner.nextInt(); // 将用户输入高的值立马赋给 b
int c = a * b; //根据用户输入的数据算出长方形的面积
System.out.println("长方形的面积是:" + c); //打印长方形的面积
break;//退出
case 3:
System.out.println("求圆的面积"); //提示用户选择3是圆的面积
System.out.println("请输入圆的半径:"); // 提示用户输入圆的半径
int r = scanner.nextInt(); // 将用户输入半径的值立马赋给 r
final double PI = 3.14; // 定义常量 PI 的值为 3.14
double circle = PI * r * r; //根据用户输入的数据算出圆的面积
System.out.println("圆的面积是:" + circle); //打印圆的面积
break;//退出
}
//当在 case 里求面积的变量 s 重名时,有三种解决方法
//方法一: 像上面代码中的12、21、29行分别给变量命不同的名
//方法二:使用作用域 , 此时变量 s 只在每个 case 对应的花括号内生效
switch (choose) {
case 1:{
System.out.println("求三角形的面积"); // 提示用户选择1是求三角形的面积
System.out.println("请输入三角形的底:" ); // 提示用户输入三角形的底
int d = scanner.nextInt(); // 将用户输入底的值立马赋给 d
System.out.println("请输入三角形的高:"); // 提示用户输入三角形的高
int h = scanner.nextInt(); // 将用户输入高的值立马赋给 h
double s = d * h / 2; // 根据用户输入的数据算出三角形的面积
System.out.println("三角形的面积是:" + s); // 打印三角形的面积
break;//退出
}
case 2:{
System.out.println("求长方形的面积");// 提示用户选择2是长方形的面积
System.out.println("请输入长方形的宽:"); // 提示用户输入长方形的宽
int a = scanner.nextInt(); // 将用户输入宽的值立马赋给 a
System.out.println("请输入长方形的高:"); // 提示用户输入长方形的高
int b = scanner.nextInt(); // 将用户输入高的值立马赋给 b
int s = a * b; //根据用户输入的数据算出长方形的面积
System.out.println("长方形的面积是:" + s); //打印长方形的面积
break;//退出
}
}
//方法三:在外面声明会有一个变量 s 值会存放在变量里
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("你选择的是:"); // 提示用户输入选择
int choose = scanner.nextInt();// 将用户输入的值立马赋值给choose
double s;
switch (choose) {
case 1:
System.out.println("求三角形的面积"); // 提示用户选择1是求三角形的面积
System.out.println("请输入三角形的底:" ); // 提示用户输入三角形的底
int d = scanner.nextInt(); // 将用户输入底的值立马赋给 d
System.out.println("请输入三角形的高:"); // 提示用户输入三角形的高
int h = scanner.nextInt(); // 将用户输入高的值立马赋给 h
s = d * h / 2; // 根据用户输入的数据算出三角形的面积
System.out.println("三角形的面积是:" + s); // 打印三角形的面积
break;//退出
case 2:
System.out.println("求长方形的面积");// 提示用户选择2是长方形的面积
System.out.println("请输入长方形的宽:"); // 提示用户输入长方形的宽
int a = scanner.nextInt(); // 将用户输入宽的值立马赋给 a
System.out.println("请输入长方形的高:"); // 提示用户输入长方形的高
int b = scanner.nextInt(); // 将用户输入高的值立马赋给 b
s = a * b; //根据用户输入的数据算出长方形的面积
System.out.println("长方形的面积是:" + s); //打印长方形的面积
break;//退出
}
例:运输公司对用户计算运费,路程越远每公里运费越低。每公里每吨货物基本运费是 p(自定义基础运费),货物重量为 w 吨,距离为 s 公里,折扣为 d,总运费 f = pws(1-d)
//运输公司对用户计算运费,路程越远每公里运费越低。
//每公里每吨货物基本运费是 p(自定义基础运费),货物重量为 w 吨,距离为 s 公里,折扣为 d,总运费 f = pws(1-d)
//
//s < 250km 折扣为0
//250<= s < 500 2%
//500<= s < 1000 5%
//1000<= s < 2000 8%
//2000<= s < 3000 10%
//3000<= s 15%
//方法一: 这种方法代码过于长,不方便看
Scanner scanner = new Scanner(System.in); //定义输入语句
int p = 8;//基础价格为 8元
System.out.println("请输入重量:"); // 提示用户输入重量
int w = scanner.nextInt();// 将用户输入重量的值立马赋值给 w
System.out.println("请输入距离:"); // 提示用户输入距离
int s = scanner.nextInt(); //将用户输入距离的值立马赋值给 s
double f;// 声明会有一个变量 f 值会存放在变量里
if (s < 250) {//当距离满足小于250时,执行下面 f = p * w * s 语句
f = p * w * s;
}
else if (250 <= s && s < 500) {//当距离满足大于等于250小于500时,执行下面f = p * w * s * 0.98;的语句
f = p * w * s * 0.98;
}
else if (500 <= s && s < 1000) {//当距离满足大于等于500小于1000时,执行下面f = p * w * s * 0.95;的语句
f = p * w * s * 0.95;
}
else if (1000 <= s && s < 2000) {//当距离满足大于等于1000小于2000时,执行下面f = p * w * s * 0.92;的语句
f = p * w * s * 0.92;
}
else if (2000 <= s && s < 3000) {//当距离满足大于等于2000小于3000时,执行下面f = p * w * s * 0.85;的语句
f = p * w * s * 0.85;
}
else{//当距离满足大于3000时,执行下面f = p * w * s * 0.8;的语句
f = p * w * s * 0.8;
}
System.out.println("你的运费是:" + f); //打印最终结果
}
//方法二:简写
Scanner scanner = new Scanner(System.in); //定义输入语句
int p = 8;//基础价格为 8元
System.out.println("请输入重量:"); // 提示用户输入重量
int w = scanner.nextInt();// 将用户输入重量的值立马赋值给 w
System.out.println("请输入距离:"); // 提示用户输入距离
int s = scanner.nextInt(); //将用户输入距离的值立马赋值给 s
double f;// 声明会有一个变量 f 值会存放在变量里
double d = 0 ; //折扣价初始值为0,因为折扣的值在不停的变化,所以开始将值初始化,后续在不同条件中更改折扣的值即可
if (250 <= s && s < 500) {//当距离满足大于等于250小于500时,执行下面 d = 0.02的语句
d = 0.02;//折扣价为0.02
}
else if (500 <= s && s < 1000) {//当距离满足大于等于500小于1000时,执行下面 d = 0.05的语句
d = 0.05;//折扣价为0.05
}
else if (1000 <= s && s < 2000) {//当距离满足大于等于1000小于2000时,执行下面 d = 0.08的语句
d = 0.08;//折扣价为0.08
}
else if (2000 <= s && s < 3000) {//当距离满足大于等于2000小于3000时,执行下面 d = 0.1的语句
d = 0.1;//折扣价为0.1
}
else if (3000 <= s) {//当距离满足大于等于3000时,执行下面 d = 0.15的语句
d = 0.15;//折扣价为0.15
}
f = p * w * s * d;
System.out.println("你的运费是:" + f);
}
例:企业发放奖金,根据利润 profit (万元)提成 commission
//企业发放奖金,根据利润 profit (万元)提成 commission,规则如下:
//利润 < 10万 提成10%
//10万<=利润 < 20万 7.5%
//20万<=利润 < 40万 5%
//40万<=利润 < 60万 3%
//60万<=利润 < 100万 1.5%
//100万<=利润 1%
//输入员工创造的利润,求出他的提成。
Scanner scanner = new Scanner(System.in); //定义输入语句
System.out.println("请输入你创造的利润:"); // 提示用户输入创造的利润
int p = scanner.nextInt();// 将用户输入的值立马赋值给w
double money;// 声明会有一个变量 money 值会存放在变量里
if (p < 10) {
money = p * 0.1;
} else if (p >= 10 && p < 20) {
money = 10 * 0.1 + (p - 10) * 0.075;
} else if (p >= 20 && p < 40) {
money = 10 * 0.1 + 10 * 0.075 + (p - 20) * 0.05;
} else if (p >= 40 && p < 60) {
money = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (p - 40) * 0.03;
} else if (p >= 60 && p < 100) {
money = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (p - 60) * 0.015;
} else {
money = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (p - 100) * 0.01;
}
System.out.println("最终你获得的提成是:" + money + "万元");
}