分支语句/条件控制语句
关于java语言当中的if语句,属于选择结构,if语句又称为分支语句/条件控制语句:
- if语句的语法结构:四种编写方式
第一种:
if(布尔表达式){
java语句;
java语句;
java语句;
java语句;
java语句;
…
}
第二种:
if(布尔表达式){
java语句;
java语句;
…
}else{
java语句;
java语句;
…
}
第三种:
if(布尔表达式){
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}…
第四种:
if(布尔表达式){
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else if{
java语句;
java语句;
…
}else{
java语句;
java语句;
…
} - 重点:对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。
- 注意:以上的第二种编写方式和第四种编写方式都带有else分支语句,这两种方式可以100%保证会有分支执行。
- “所有的控制语句”都是可以嵌套使用的。只要合理嵌套就行。
- 注意:嵌套使用的时候,代码格式要保证完美。【该缩进的时候必须缩进,大部分情况下使用大括号包围的需要缩进】
- if语句的分支中只有一条java语句的话,大括号可以省略不写。
if(true/false){
一条java语句;
}
if(true/false) 一条java语句;
这种方式不推荐使用,别人这么写能看懂就行。
代码实例(1)
public class Main {
public static void main(String[] args) {
//需求:所在位置的五公里范围之内有肯德基的话,去KFC吃午饭
//公里数
//double distance = 6.0;//单位KM
double distance = 1.0;
//判断语句
if (distance < 5) {
System.out.println("去KFC吃开封菜");
}
/*
需求:
假设系统给定一个考生的成绩,成绩可能带有小数点,成绩要求范围是[0-100]
根据学生的成绩判断该学生的成绩等级。
[90-100] A
[80-90) B
[70-80) C
[60-70) D
[0-60) E
以上的逻辑判断采用if语句完成,应该怎么写?
*/
double score = 46.5;
//根据需求决定选择以上的第四种结构来完成需求
/*
if(score < 0 || score > 100){
System.out.println("对不起,您提供的考生成绩不合法");
}else if(score >= 90 && score <=100){ //没必要判断是否小于等于100,能执行到这里一定是<=100
}
*/
//score = 60.0;
//score = -100;
/*if (score < 0 || score > 100) {
System.out.println("对不起,您提供的考生成绩不合法");
} else if (score >= 90) {//能够判断到这里说明成绩一定是[0-100]
System.out.println("该考生的考试成绩等级是:A等级");
} else if (score >= 80) {//能够判断到这里说明成绩一定是小于90分的
System.out.println("该考生的考试成绩等级是:B等级");
} else if (score >= 70) {
System.out.println("该考生的考试成绩等级是:C等级");
} else if (score >= 60) {
System.out.println("该考生的考试成绩等级是:D等级");
} else {
System.out.println("该考生的考试成绩等级是:E等级");
}
*/
String grade = "该考生的考试成绩等级是:E等级";
if (score < 0 || score > 100) {
grade = "对不起,您提供的考生成绩不合法";
} else if (score >= 90) {//能够判断到这里说明成绩一定是[0-100]
grade = "该考生的考试成绩等级是:A等级";
} else if (score >= 80) {//能够判断到这里说明成绩一定是小于90分的
grade = "该考生的考试成绩等级是:B等级";
} else if (score >= 70) {
grade = "该考生的考试成绩等级是:C等级";
} else if (score >= 60) {
grade = "该考生的考试成绩等级是:D等级";
}
System.out.println(grade);
}
}
System.out.println();负责向控制台输出【从内存到控制台,输出的过程,这是从内存出来了】
接收用户的输入,从“键盘”到“内存”。【输入的过程,到内存中去】
代码实例(2)
public class InputTest {
public static void main(String[] args) {
//第一步:创建键盘扫描对象
java.util.Scanner s = new java.util.Scanner(System.in);
//第二步:调用Scanner对象的next()方法开始接收用户的键盘输入
//当程序执行到这里会停下来,等待用户的输入
//当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给userInputContent
//程序执行到这里,用户输入的信息已经到内存中了。
//接收文本【以字符串的形式接收】
//String userInputContent = s.next();
//接受数字【以整数型int的形式来接收】
int num = s.nextInt();
//将内存中的数据输出到控制台
//System.out.println("您输入了:" + userInputContent);
System.out.println("您输入的数字是:" + num);
System.out.println("计算结果:" + (num + 100));
}
}
小结
记住代码。或者直接将代码复制粘贴
- 第一步:
java.util.Scanner s = new java.util.Scanner(System.in); - 第二步:
String str = s.next();
或
int num = s.nextInt();
代码实例(3)
public class IfTest01 {
/*
需求:
假设系统给定一个人的年龄(这个年龄需要从键盘输入),
根据年龄来判断这个人处于生命的哪个阶段,年龄必须在[0-150]
[0-5] 幼儿
[6-10] 少儿
[11-18] 青少年
[19-35] 青年
[36-55] 中年
[56-150]老年
*/
public static void main(String[] args) {
//1.接收键盘收入:年龄【输入的时候必须输入数字】
java.util.Scanner s = new java.util.Scanner(System.in);
//System.out.println("请输入您的年龄:");
System.out.print("请输入您的年龄:");//输出提示信息,要不然用户根本不知道这里要干嘛!
int age = s.nextInt();
//System.out.println("age = " + age);
//2.根据需求进行业务逻辑判断
String str = "您处于生命周期的老年阶段";
if (age < 0 || age > 150) {
str = "您提供的年龄不合法,年龄值需要在[0-150]之间";
} else if (age <= 5) {
str = "您处于生命周期的幼儿阶段";
} else if (age <= 10) {
str = "您处于生命周期的少儿阶段";
} else if (age <= 18) {
str = "您处于生命周期的青少年阶段";
} else if (age <= 35) {
str = "您处于生命周期的青年阶段";
} else if (age <= 55) {
str = "您处于生命周期的中年阶段";
}
System.out.println(str);
}
}
代码实例(4)
import java.util.Scanner;
public class IfTest02 {
/*
* 需求:
* 判断当前的天气:
* 当外边下雨的时候:
* 带雨伞:
* 判断性别:
* 当性别为男:带一把大黑伞
* 当性别为女:带一把小花伞
* 当外边是晴天的时候:
* 判断天气的温度:
* 当天气温度在30度以上:
* 当性别为男:戴墨镜
* 当性别为女:擦防晒霜
* 提示:
* 1.一定会用到嵌套
* 2.天气状况、温度、性别都需要从键盘输入。
* 天气状况:1.表示下雨;0表示晴天
* 温度直接使用数字即可
* 性别:1表示男、0表示女
*/
public static void main(String[] args) {
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("欢迎使用本系统,您通过本系统可以完成一些简单的判断");
System.out.println("说明1:1表示下雨,0表示晴天");
System.out.println("说明2:1表示男,0表示女");
System.out.println("说明3:温度为数字");
//接收性别
System.out.print("请输入性别:");
int sex = s.nextInt();
//接收天气状况
System.out.print("请输入当前天气状况:");
int weather = s.nextInt();
//判断天气状况
if (weather == 1) {
//下雨天
//System.out.println("下雨天");
if (sex == 1) {
System.out.println("带一把大黑伞");
} else if (sex == 0) {
System.out.println("带一把大花伞");
} else {
System.out.println("对不起,您的性别是怎么回事?");
}
} else if (weather == 0) {
//晴天
//System.out.println("晴天");
//接收温度
System.out.print("请输入当前天气的温度:");
int tem = s.nextInt();
if (tem > 30) {
if (sex == 1) {
System.out.println("戴墨镜");
} else if (sex == 0) {
System.out.println("擦防晒霜");
} else {
System.out.println("对不起,您的性别是怎么回事?");
}
}
} else {
System.out.println("对不起,您输入的天气状况不存在!");
}
}
}
代码实例(5)
public class IfTest03 {
public static void main(String[] args) {
boolean sex = true;
if(sex){
System.out.println("男");
}else {
System.out.println("女");
}
sex=false:
if(sex) System.out.println("男"); else System.out.println("女");
//--------------------------------------------------------------
// if (sex)
// System.out.println("男");
// System.out.println("呵呵");
// else
// System.out.println("女");
//以上程序中编译错误出现在20行。20行以上的代码没有问题。
}
}
资料来源:
【Java零基础教程视频(适合Java 0基础,Java初学入门)】 https://www.bilibili.com/video/BV1Rx411876f/?p=59&share_source=copy_web&vd_source=9bce191eb50f06ae83cb422d8b7f8f31