在上篇文章中我们了解了java的基本流程控制之一用户交互,也讲述了scanner类的使用方式,本篇文章中我们来深入一下下一个java流程控制,if和else,这个是非常关键的,也是我们以后的工作中最常见最常用的。
在介绍if和else之前,我们先说明一下java的顺序结构,这个也是非常重要的。
public class Demo
{
public static void main(String[] args)
{
System.out.println("第一个");
System.out.println("第二个");
System.out.println("第三个");
System.out.println("第四个");
}
}
我们用最简单的输出来看一下结果。
第一个
第二个
第三个
第四个
所以我们可以看到,代码运行是从上到下的顺序。
首先我们来介绍一下if的几种结构
单选择结构:就是只有一个if判断,if后的小括号内,是布尔表达式,判断为真还是为假,只有true和false两种结果,如果判断内容为真,则执行大括号里面的代码,如果为假,则跳过大括号里面的代码,向下执行。
单选择结构使用方法:
if(布尔表达式)
{
//如果布尔值是true,在此处写需要执行的语句
}
我们正好可以结合上一篇文章中的Scanner知识,直接实战,用来加深对Scanner的印象。
关于java的用户交互Scanner
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String str = scanner.next();//等待用户输入
//equals 判断字符串是否相等
if(str.equals(Hello))
{
System.out.println("输入的内容正确:"+str);
}
System.out.println("END");
scanner.close();
}
}
我们运行一下上面的代码,就可以看到以下输出结果(先看一下结果为真时候的输出)
请输入内容:
Hello
输入的内容正确:Hello
END
我们这里就可以看到,是按照顺序结构进行的,先执行了上面的判断,然后判断值是true,所以向下执行,再输出END。
我们再来看一下如果输入的内容和判断中的内容不一致,是什么结果(输入一个小写的hello)。
请输入内容:
hello
END
我们可以发现,输入的内容和判断中的内容不一致,大小写也是有区分的,结果为false,所以没有执行大括号中的代码,直接跳过向下执行了。
if(布尔表达式)
{
//如果布尔值是true,在此处写需要执行的语句
}
else //注意,else后边没有括号
{
//如果布尔值是false,在此处写需要执行的语句
}
我们还是用Scanner交互,让用户输入自己的考试成绩,来判断是否及格。
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score = scanner.nextInt();
if(score>60)
{
System.out.println("及格");
}
else
{
System.out.println("不及格");
}
scanner.close();
}
}
我们运行一下代码,先输入及格的成绩,假设输入的成绩是80,来看一下运行的结果。
请输入您的成绩:
80
及格
进程结束.......
我们看可以看到,80>60,所以判断的结果为真,执行了输出及格的结果,如果我们输入的成绩是55,就可以看到,结果为假,执行的是不及格的结果。
请输入您的成绩:
55
不及格
进程结束.......
if(布尔表达式1)
{
//如果布尔值是true,在此处写需要执行的语句
}
else if(布尔表达式2)
{
//如果布尔值是true,在此处写需要执行的语句
}
else if(布尔表达式3)
{
//如果布尔值是true,在此处写需要执行的语句
}
else //注意,else后边没有括号
{
//如果布尔值是false,在此处写需要执行的语句
}
else if 就是多种判断,没有数量限制,可以写很多的判断条件,如果条件满足其中一个判断,就可以直接执行那个条件需要执行的代码。
我们还是用Scanner来输入自己的成绩,但是这回需要判断成绩的等级,所以要用到多个判断,正好也可以用到我们之前文章中说到过的运算符。
关于java的运算符
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的成绩:");
int score = scanner.nextInt();
if (score>=60 && score<70)
{
System.out.println("及格");
}
else if (score>=70&&score<80)
{
System.out.println("中等");
} else if (score>=80 && score<90)
{
System.out.println("优秀");
} else if (score>=90 && score<100)
{
System.out.println("非常优秀");
}
else if (score==100)
{
System.out.println("恭喜满分!");
} else if (score<60)
{
System.out.println("不及格");
} else
{
System.out.println("无效的成绩");
}
scanner.close();
}
}
我们执行一下,如果我们输入的成绩是80,因为80在score>=80 && score<90这个判断里,所以返回的结果是
请输入你的成绩:
80
优秀
进程结束......
这里我们要 详细介绍一下else if
if(布尔表达式1)
{
//如果布尔值是true,在此处写需要执行的语句
if(布尔表达式2)
{
//如果布尔值是true,在此处写需要执行的语句
}
}
如果我们需要找出一个数,这个数在1-100之间属于哪个范围。
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
Scanner scanner =new Scanner(System.in);
System.out.println("请输入想要查找的数字:");
int num=scanner.nextInt();
if (num>=1 && num<=100) //首先要进行最外层的判断
{
if (num>=1 && num<=50)
{
System.out.println("此数字在1-50之间");
}
else if (num>=50 && num<=100)
{
System.out.println("此数字在50-100之间");
}
}
else
{
System.out.println("输入的数字无效!");
}
scanner.close();
}
}
假如我们输入的数字是88,执行一下代码,可以得到以下结果。
请输入想要查找的数字:
88
此数字在50-100之间
假如我们输入的数字是188,执行一下代码,可以得到以下结果。
请输入想要查找的数字:
188
输入的数字无效!
以上就是基础选择结构的四种方式,按照步骤去理解,结合现实生活中的一些判断逻辑,多去练习,加深印象。