第一讲
你好! 这是Java教学的第一课,之前写过几篇二进制的前戏,掌握二进制对之后的学习理解会有更好的帮助。
从这开始,我们进入Java教学: 现如今我们工作生活的方方面面都离不开手机、电脑,像里面各式各样的软件我们是非常熟悉的,比如玩游戏的扫雷、蜘蛛纸牌、写文档用的Word、购物的某宝等等,那么这些软件是怎么做出来的呢?其实就是用的计算机语言编程写出来的,那,什么是计算机语言?其实就是计算机能读懂的语言,正像我们现实生活中有各种人的语言,比如汉语、英语、德语等等,计算机语言也有很多种,那我们这来学习的就是Java
键盘录入的基本格式讲解(掌握)
- 为什么要使用键盘录入数据
- 为了让程序的数据更符合开发的数据
- 让程序更灵活一下
- 如何实现键盘录入呢?
- 先照格式来。
- 导包
- 格式:
- import java.util.Scanner;
- 位置:
- 在class上面。
- 格式:
- 创建键盘录入对象
- 格式:
- Scanner sc = new Scanner(System.in);
- 格式:
- 通过对象获取数据
- 格式:
- int x = sc.nextInt();
- 格式:
- 案例演示
- 键盘录入1个整数,并输出到控制台。
- 自我练习
- 键盘录入2个整数,并输出到控制台。
如上演示:当运行程序后,程序会将main方法中的代码自上而下运行,但是,当运行到scan.nextInt() 的时候,程序会卡在这里,你可以看到光标在闪,他卡在这里干嘛呢? 等待你输入一个数字,你输入数字后,程序继续往下运行
import java.util.Scanner;
public class ScanDemo{
public static void main(String[] args){
//类型 变量名 = XXX
Scanner scan = new Scanner(System.in);
System.out.println("请输入一段你最爱的数字");
int x = scan.nextInt();
System.out.println("您输入的数字为:"+x);
System.out.println("OVER");
}
}
交换值
如何交换两个变量的值呢?
这里举个很简单的例子,就像我们现在有一杯可乐,还有一杯82年的拉菲,我们要把这两杯交换,怎么交换呢?我们可以使用第三个杯子,先把可乐倒入第三个杯子中,再把拉菲倒入之前装可乐的杯子,最后把可乐倒进刚才装拉菲的杯子即可
public class Demo5{
public static void main(String[] args){
int i = 9;
int j = 88;
System.out.println("i的值为:"+i+",j的值为:"+j);
int k;
//1.把i赋值给空的k
k = i;
//2.把j的值赋值给i
i = j ;
//3.把k的值赋值给j
j = k;
System.out.println("交换后!!i的值为:"+i+",j的值为:"+j);
}
}
特殊的String
String是一个比较特殊的类型,他有两种赋值方式,第一种跟我们之前学的=赋值类似,另一种是使用new的方式赋值,看如下代码
public class StringDemo{
public static void main(String[] args){
//类型 变量名 =xxx;
/*String str = "你好啊?";
String str2 = new String("你好啊?");
String str3 = "你好啊?";
System.out.println(str);
System.out.println(str2);
System.out.println(str3);
System.out.println(str == str2);//false
System.out.println(str == str3);*///true
/*int i = 9;
double d = 9.0;
System.out.println(i ==d);*/
/*char c = 'a';
int i = 97;
System.out.println(c == i );*/
int i = -2;
byte b = -2;
System.out.println(i == b);
P1:
str,str2,str3都是String类型的变量
要使得
str == str2结果为false
str == str3结果为false
str3 == str2结果为true
请定义str,str2,str3
}
}
看上面代码演示的,我们发现 只要使用new String(“xxx”)的方式出来的字符串变量,使用==跟其他的字符串变量判断的话,得到的结果都是false,实际上,我们要判断两个字符串是否一样的话,不应该使用==来判断,而是需要使用equals来判断,如下:
public class Test1{
public static void main(String[] args){
/*
str,str2,str3都是String类型的变量
要使得
str == str2结果为false
str == str3结果为false
str3 == str2结果为true
请定义str,str2,str3
*/
//每new 一次,都会在堆内存空间创建一个新的
String str2 = "a";
String str3 = "a";
String str = new String("a");
System.out.println(str == str2);
System.out.println(str == str3);
System.out.println(str3 == str2);
//String使用equals方法比较
//比较他们的字符串的值是否一样
System.out.println("使用equals方法比较:"+str.equals(str2));
String ss = new String("abc");
String ss2 = new String("abc");
System.out.println("两个new比较:"+ss.equals(ss2));
}
}
课中练习
然后再做两个插入练习来多打打代码吧
import java.util.Scanner;
public class Test2{
public static void main(String[] args){
/*
P2:使用输入语句输入一个三位数字
输出出这个数字个位,十位,百位
*/
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个三位数");
int i = scan.nextInt();
System.out.println("个位:"+i%10);
System.out.println("十位:"+i/10%10);
System.out.println("百位:"+i/100%10);
}
}
import java.util.Scanner;
public class IfDemo{
public static void main(String[] args){
//有两个变量 1个是i
//一个是j
//假如i>j那么输出一句 你大你牛
//否则的话 ,你小你开心
//int i = 9;
//int j = 9;
//这个小括号中写的是条件,不管你写什么鬼,
//只要能得到一个boolean类型的结果就行
/*if(i > j){
System.out.println("你大你牛逼");
}else{
System.out.println("你小你开心");
}*/
//练习1 输入一个数,如果这个数大于100,则输出一句,破百啦
//否则,输出一句,太小了
/*Scanner scan = new Scanner(System.in);
System.out.println("请输入一个数");
int i = scan.nextInt();
if(i >100){
System.out.println("破百");
}else{
System.out.println("小了");
}*/
//练习2,输入一个数,如果这个数是奇数,那么输出 这个数为奇数
//否则输出 这个数为偶数
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个数");
int i =scan.nextInt();
if(i%2 == 0 ){
System.out.println("您输入的数字是偶数");
}else{
System.out.println("您输入的数是奇数");
}
}
}
顺序结构语句(了解)
- 什么是流程控制语句
- 流程控制语句:可以控制程序的执行流程。
- 流程控制语句的分类
- 顺序结构
- 选择结构
- 循环结构
- 顺序结构执行流程:
- 从上往下,代码一行一行依次执行。
选择结构if语句注意事项(掌握)
- 案例演示
- 比较表达式无论简单还是复杂,结果必须是boolean类型
- if语句控制的语句体如果是一条语句,大括号可以省略;
- 如果是多条语句,就不能省略。建议永远不要省略。
- c:一般来说:有左大括号就没有分号,有分号就没有左大括号
选择结构if语句格式1及其使用(掌握)
- 选择结构的分类
- if语句
- switch语句
- if语句有几种格式
- 格式1
- 格式2
- 格式3
- if语句的格式1
if(比较表达式) { 语句体; }
- 执行流程:
- 先计算比较表达式的值,看其返回值是true还是false。
- 如果是true,就执行语句体;
- 如果是false,就不执行语句体;
选择结构if语句注意事项(掌握)
- 案例演示
- 比较表达式无论简单还是复杂,结果必须是boolean类型
- if语句控制的语句体如果是一条语句,大括号可以省略;
- 如果是多条语句,就不能省略。建议永远不要省略。
- c:一般来说:有左大括号就没有分号,有分号就没有左大括号
选择结构if语句格式及其使用(掌握)
- if语句的格式2
if(比较表达式) { 语句体1; }else { 语句体2; }
- 执行流程:
- 首先计算比较表达式的值,看其返回值是true还是false。
- 如果是true,就执行语句体1;
- 如果是false,就执行语句体2;
- 案例演示
-
获取两个数据中较大的值
-
判断一个数据是奇数还是偶数,并输出是奇数还是偶数
-
注意事项:else后面是没有比较表达式的,只有if后面有。
-
if语句的格式和三元的相互转换问题(掌握)
- 案例演示
- if语句和三元运算符完成同一个效果
- 案例演示
-
if语句和三元运算符的区别
-
三元运算符实现的,都可以采用if语句实现。反之不成立。
-
什么时候if语句实现不能用三元改进呢?
- 当if语句控制的操作是一个输出语句的时候就不能。
- 为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
-
选择结构if语句格式及其使用(掌握)
- if语句的格式3:
if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else { 语句体n+1; }
- 执行流程:
-
首先计算比较表达式1看其返回值是true还是false,
-
如果是true,就执行语句体1,if语句结束。
-
如果是false,接着计算比较表达式2看其返回值是true还是false,
-
如果是true,就执行语句体2,if语句结束。
-
如果是false,接着计算比较表达式3看其返回值是true还是false,
-
如果都是false,就执行语句体n+1。
-
- 注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示
选择结构if语句的嵌套使用(掌握)
- 案例演示
- 需求:获取三个数据中的最大值
- if语句的嵌套使用。
选择结构switch语句的格式及其解释(掌握)
- switch语句的格式
switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break; }
- switch语句的格式解释
- 面试题
- byte可以作为switch的表达式吗?
- long可以作为switch的表达式吗?
- String可以作为switch的表达式吗?
- 执行流程
- 先计算表达式的值
- 然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
选择结构switch语句的练习(掌握)
- 整数(给定一个值,输出对应星期几)
- 字符串 匹配是否退出
选择结构switch语句的注意事项(掌握)
- 案例演示
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略吗?
- 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
- 特殊情况:
- case就可以把值固定。
- A,B,C,D
- break可以省略吗?
- 最后一个可以省略,其他最好不要省略
- 会出现一个现象:case穿透。
- 最终我们建议不要省略
- default一定要在最后吗?
- 不是,可以在任意位置。但是建议在最后。
- switch语句的结束条件
- 遇到break就结束了
- 执行到switch的右大括号就结束了
选择结构switch语句练习(掌握)
- 看程序写结果:
int x = 2; int y = 3; switch(x){ default: y++; break; case 3: y++; case 4: y++; } System.out.println("y="+y);
- 看程序写结果:
int x = 2; int y = 3; switch(x){ default: y++; case 3: y++; case 4: y++; } System.out.println("y="+y);
选择结构if语句和switch语句的区别(掌握)
- 总结switch语句和if语句的各自使用场景
- switch建议判断固定值的时候用
- if建议判断区间或范围的时候用
- 案例演示
- 分别用switch语句和if语句实现下列需求:
- 键盘录入月份,输出对应的季节
春季 1-3
夏季 4-6
秋季 7-9
冬季 10-12
- 键盘录入月份,输出对应的季节
- 分别用switch语句和if语句实现下列需求:
课堂练习
- 练习双项if
- 从键盘录入两个数并判断大小,按照从大到小输出
- 从键盘录入一个数判断该数是奇数还是偶数
a b c a + b >c && a+ c >b && b+c >a - 从键盘录入3个数.判断这三个数是否可以构成3角形.
- 练习嵌套if
- 根据年龄判断人的生命期:60岁以上—老年人;40~60岁—中年人;20~40岁—青年人;10~20岁—青少年;10岁以下—儿童,
预习
- for的三个表达式的写法以及含义.思考是否可以省略
- while的写法.
- do-while的写法