条件控制语句
if~~else案例
import java.util.Scanner;
public class If{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入你的年龄");
int age = input.nextInt();
if (age > 18) {
System.out.println("你应该承担法律责任");
}else{
System.out.println("你还小,应该好好学习");
}
}
}
程序执行流程图
![image-20230812141832578](/i/l/?n=23&i=blog/2400516/202308/2400516-20230812142212242-178981175.png)
双分支
public class If{
public static void main(String[] args) {
/*双分支案例*/
int x = 7;
int y = 4;
if(x>5){
if(y>5){
System.out.println(x+y);
}else{
/*程序执行这段代码*/
System.out.println("我是大帅逼");
}
}else{
System.out.println("什么都没发生");
}
}
}
练习
public class If{
public static void main(String[] args) {
/*练习:
编写一个程序,申明2个double类型的变量并赋值
判断第一个数字大于10.0,且第二个数字小于20.0,打印两数字之和
*/
double num1 = 12.0;
double num2 = 19.0;
if(num1 > 10.0){
if(num2 < 20.0){
System.out.println(num1 + num2);
}
}else{
System.out.println("这两个数字不大于10.0且小于20.0");
}
}
}
public class If{
public static void main(String[] args) {
/*练习:
定义两个变量int 判断二者的和是否能被3又能被5整除
打印提示信息
*/
int num1 = 15;
int num2 = 13;
int sum = num1 + num2;
if (sum % 3 == 0) {
if (sum % 5 ==0) {
System.out.println("能被3又能被5整除");
}
}else
System.out.println("不能被3又能被5整除");
}
}
public class If{
public static void main(String[] args) {
/*练习:
判断一年是否为闰年
(1)年份可以被4整除,但不能被100整除
(2)能被400整除
*/
int year = 2020;
if (year % 4 ==0 && year % 100 != 0 || year % 400 ==0) {
System.out.println("该年为闰年");
}else{
System.out.println("该年为平年");
}
}
}
多分支
特别说明:
- 多分支可以没有else,如果所有的条件表达式都不成立,则执行入口都没有,输出为空
- 如果有else,如果所有的条件表达式都不成立,则默认执行else代码块
案例
import java.util.Scanner;
public class If{
public static void main(String[] args) {
/*练习:
输入信用分
判断某人的芝麻信用分
*/
Scanner input = new Scanner(System.in);
System.out.println("输入信用分(1-100)");
int num = input.nextInt();
if(num > 1 && num <= 100){
if (num == 100) {
System.out.println("信用极好");
}else if (num > 80 && num <= 90) {
System.out.println("信用优秀");
}else if (num >= 60 && num <= 80) {
System.out.println("信用一般");
}else{
System.out.println("不合格");
}
}else{
System.out.println("输入错误");
}
}
}
嵌套分支
注意:嵌套最好要超过三层,否则可读性不好
案例
import java.util.Scanner;
public class If{
public static void main(String[] args) {
/*参加歌手比赛,如果初赛成绩大于8.0分进入决赛,否则进入淘汰赛,并且根据性别
进入男子组或者女子组
(1)输入
(2)判断
*/
Scanner input1 = new Scanner(System.in);
System.out.println("请输入成绩");
double score = input1.nextDouble();
Scanner input2 = new Scanner(System.in);
System.out.println("请输入性别");
/*使用char类型接收见键盘输入的方法
next().charAt(0)
*/
char gender = input2.next().charAt(0);
if(score > 8.0){
System.out.println("============进入决赛============");
if (gender == '男') {
System.out.println("请进入男子组");
}else{
System.out.println("请进入女子组");
}
}else{
System.out.println("============进入淘汰赛============");
if (gender == '男') {
System.out.println("请进入男子组");
}else{
System.out.println("请进入女子组");
}
}
}
}
运行截图
练习
出票系统
import java.util.Scanner;
public class If{
public static void main(String[] args) {
/*出票系统
(1)旺季:
成人(18-60):60
儿童(<18):半价
老人(60):票价的1/3
(2)淡季:
成人:40
其他:20
*/
Scanner input1 = new Scanner(System.in);
System.out.println("请输入月份(1-12)");
int mouth = input1.nextInt();
Scanner input2 = new Scanner(System.in);
if(mouth >= 1 && mouth <= 12){
System.out.println("请输入年龄");
int age = input2.nextInt();
if(mouth >= 4 && mouth <=10){
System.out.println("此时为旺季");
int price = 60;
if (age < 18) {
System.out.println("您是儿童票价为:" + price*0.5);
}else if (age > 18 && age <60) {
System.out.println("您是成人票价为:" + price);
}else if(age > 60){
System.out.println("您是老人票价为:" + price*(1/3));
}
}else{
System.out.println("此时为淡季");
if (age > 18 && age <60) {
System.out.println("您是成人票价为:40");
}else{
System.out.println("其他票价为:20");
}
}
}else{
System.out.println("输入有误");
}
}
}
标签:语句,控制,Scanner,System,else,条件,println,public,out
From: https://www.cnblogs.com/ygcDiary/p/17624945.html