-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
一、键盘录入
(一) 键盘录入的步骤
导包(位置放到class定义的上面):import java.util.Scanner;
创建对象:Scanner sc = new Scanner(System.in);
接收数据:int x = sc.nextInt();
(二)键盘录入数据练习
1. 键盘录入两个数据,并对这两个数据求和,输出其结果
import java.util.Scanner;
class ScannerSum{
public static void main(String[] args){
//创建对象
Scanner sc=new Scanner(System.in);
System.out.println("请输入两个数,我来计算他们的和...");
System.out.println("请输入第一个数:");
//接收数据
int a=sc.nextInt();
System.out.println("请输入第二个数:");
int b=sc.nextInt();
int sum=a+b;
System.out.println("您输入的两个数的和为:"+sum);
}
}
运行结果:
2. 键盘录入三个数据,获取这三个数据中的最大值
import java.util.Scanner;
class ScannerGetMax{
public static void main(String[] args){
//创建对象
Scanner sc=new Scanner(System.in);
System.out.println("请输入你想要比较的三个数,我来帮你找到最大的那个数。。。");
System.out.println("请输入第一个数:");
//接收数据,定义变量来保存数据
int a=sc.nextInt();
System.out.println("请输入第二个数:");
int b=sc.nextInt();
System.out.println("请输入第三个数:");
int c=sc.nextInt();
//用三元运算符判断出最大的数
int max=((a>b?a:b)>c)?(a>b?a:b):c;
//输出最大数
System.out.println("您输入的三个数中,最大的那个数为:"+max);
}
}
运行结果:
3. 键盘录入两个数据,比较这两个数据是否相等
import java.util.Scanner;
class ScannerEqual{
public static void main(String[] args){
//创建对象
Scanner sc=new Scanner(System.in);
System.out.println("请输入两个数据,我来判断它们是否相等。。。");
System.out.println("请输入第一个数:");
//接收数据,定义变量保存数据
int a=sc.nextInt();
System.out.println("请输入第二个数:");
int b=sc.nextInt();
//判断是否相等,输出结论
String s=(a==b)?"您输入的两个数相等":"您输入的两个数不相等";
System.out.println(s);
}
}
运行结果:
二、流程控制语句:
流程控制语句分类:
顺序结构
选择结构
循环结构
(一)顺序结构
1. 顺序结构概述:顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
2. 顺序结构(自上而下执行)练习
class OrderDemo{
public static void main(String[] args){
System.out.println("程序正在运行中...");
System.out.println("程序准备中...");
System.out.println("程序开始运行...");
System.out.println("程序没有bug...");
}
}
运行结果:
(二)选择结构
1. 概述:选择结构也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
2. Java语言提供了两种选择结构语句
if语句
switch语句
(1)if语句:if语句有三种格式
注意事项:
关系表达式无论简单还是复杂,结果必须是boolean类型
if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
①if语句的第一种格式
if(关系表达式) {
语句体
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
练习:判断两个数据是否相等,如果是就输出:相等
class IfDemo{
public static void main(String[] args){
//定义变量
int x =20;
int y =10;
if (x==y){
System.out.println("相等");
}
System.out.println("over");
}
}
运行结果:
②if语句第二种格式:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
练习:获取两个数据中较大的值,使用if的第二种格式实现
class IfDemo2{
public static void main(String[] args){
//定义变量
int x =6;
int y =9;
//保存结果
int max;
if (x > y ){
max = x;
}else{
max = y;
}
System.out.println("两个数中较大的数是"+ max );
}
}
运行结果:
③if语句第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
练习:定义一个成绩,判断并输出成绩的等级。
90-100 优秀
80-90 好
70-80 良
60-70 及格
0-60 不及格
import java.util.Scanner;
class CompareScore{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的成绩");
//接收数据,定义变量保存数据
int score=sc.nextInt();
if (score>100||score<0){
System.out.println("成绩不合理,请重考");
}
else{
if (score<=100&&score>=0){
if (score<=100&&score>=90){
System.out.println("优秀");
}
else if (score<=89&&score>=80){
System.out.println("好");
}
else if (score<=79&&score>=70){
System.out.println("良");
}
else if (score<=69&&score>=60){
System.out.println("及格");
}
else if (score<=59&&score>=0){
System.out.println("不及格");
}
}
}
}
}
运行结果:
(2)switch语句
①switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
②格式解释
switch表示这是switch语句
表达式的取值:byte ,short , int , char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
③执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
④注意事项
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
default可以省略吗?
可以省略。一般不建议。除非判断的值是固定的。(单选题)
break可以省略吗?
可以省略,一般不建议。否则结果可能不是你想要的
default的位置一定要在最后吗?
可以出现在switch语句任意位置。
switch语句的结束条件
要么遇到break,要么执行到程序的末尾
⑤练习:用switch语句实现键盘录入月份,输出对应的季节(12,1,2是冬季)
import java.util.Scanner;
class SwitchDemo{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入你想查询的月份(1~12)...");
int month=sc.nextInt();
switch (month){
case 12:
case 1:
case 2:
System.out.println("你查询的月份是冬季");
break;
case 3:
case 4:
case 5:
System.out.println("你查询的月份是春季");
break;
case 6:
case 7:
case 8:
System.out.println("你查询的月份是夏季");
break;
case 9:
case 10:
case 11:
System.out.println("你查询的月份是秋季");
break;
default:
System.out.println("没有这样的月份");
}
}
}
运行结果:
(3)if语句和switch语句各自使用场景
①if语句使用场景:
针对结果是Boolean 类型的判断
针对一个范围的判断
针对几个常量值的判断
②switch语句使用场景:
针对几个常量值的判断
(三)循环结构
1. 循环语句的组成
初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
2. for语句循环结构
①for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
②执行流程
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
③注意事项
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
④练习:求出1-100之间的偶数之和
class EvenSumFor{
public static void main(String[] args){
//定义和的变量
int sum=0;
//循环获取数据
for (int x=2;x<=100 ;){
//相加
sum +=x;
x +=2;
}
System.out.println("1-100的偶数和为:"+sum);
}
}
运行结果:
3. while循环语句
①while循环语句格式:
基本格式:
while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
②练习:求1-100之间奇数和
class WhileUnevenSum{
public static void main(String[] args){
int i=1;
int sum=0;
while (i<=100){
sum +=i;
i +=2;
}
System.out.println("1-100之间的奇数和为:"+sum);
}
}
运行结果:
4. for循环和while循环的区别
for循环语句和while循环语句可以等价转换,但还是有些小区别的。
①使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
②场景区别:
for循环适合针对一个范围判断进行操作
while循环适合判断次数不明确操作
5. do…while循环语句
①do…while循环语句格式:
基本格式:
do {
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
②练习:输出5次 HelloWorld
class DoWhileDemo{
public static void main(String[] args){
//初始化语句
int x = 0;
do{
//循环体语句;
System.out.println("HelloWorld ");
//控制条件语句;
x++;
} //判断条件语句
while (x<5);
System.out.println();
}
}
运行结果:
6. 三种循环语句的区别及注意事项
①三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
②注意事项:
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
如下代码是死循环
while(true){}
for(;;){}
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------