一、笔记
往期回顾:
关键字:被java赋予特殊含义的字符
标识符:用于Java程序中变量,类,方法等命名的符号。
常量:不可改变的值
变量:可以改变的值
变量的声明格式:数据类型 变量名 = 初始值
拓展:
局部变量:声明在方法中的变量,作用范围很小,到方法体末尾结束
使用方式:先声明,再赋值,然后才能使用
全局变量:声明在方法外,类内部,作用范围很大,作用于整个类中
使用方式:声明后可以不用赋值也可以使用,因为程序会赋值一个默认值
【在程序中涉及到类型两个字,说的就是基本数据类型和引用数据类型】
数据类型:基本数据类型和引用数据类型
基本数据类型:
整数 byte short int long 默认类型:int 默认值:0
浮点 float double 默认类型 double 默认值 0.0
字符 char 默认值:空字符
布尔 boolean 默认值:false
引用数据类型:所有的引用数据类型 默认值都是null
类 String 默认值:null
变量名:如果程序中声明了变量a,在下边的代码里就不能在声明变量a了。(导致重名)
byte short int char 在进行加减乘除..运算中,运算后的结果是一个int类型的值
赋值:拓展运算符
+=
a+=b:值进行了一次运算,JVM帮忙进行了强制类型转换
a=a+b:
第一次:将a和b自动类型提升到int类型 ,相加
第二次:进行赋值操作
今日学习:
流程:程序的执行过程
分支语句(多路决策):判断语句、选择语句
循环语句。
【代码仅仅是思想的一种表现形式】
学习流程控制语句重点。
1.明确格式(长什么样)
2.流程是什么(在程序中如何执行的)
判断语句:
格式1:
判断条件 or 布尔表达式 or 关系表达式同理判断语句
if(判断语句){
语句块1;
}else{
语句块2;
}
流程:如果判断语句是true则执行语句块1;否则执行else语句中的语句块2.
定义三条边,判断能否构成三角形?
import java.util.Scanner;
public class Triangle {
/*判断任意三边能否组成一个三角形
思路:
1.先定义任意三条边的长度,长度是不确定的 int a=3,int b=4 ,int c=5
2.使用判断语句对任意三条边能否能组成三角形进行判断
3.判断条件:
a+b>c&&a+c>b&&b+c>a;
*/
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一条边");
int a=sc.nextInt();
System.out.println("请输入第二条边");
int b=sc.nextInt();
System.out.println("请输入第三条边");
int c=sc.nextInt();
if(a+b>c&&a+c>b&&b+c>a){
System.out.println("这三条边能组成一个三角形");
}else{
System.out.println("这三条边不能组成一个三角形");
}
}
}
定义奖项,若中奖号码为1,提示一等奖 中奖号码为2,提示二等奖,如果是3 提示三等奖,如果是其他就是没中奖
import java.util.Scanner;
public class TestChouJiang {
/*
若中奖号码为1,提示一等奖
中奖号码为2,提示二等奖
如果是3提示三等奖,提示三等奖,
如果是其他,就是没中奖
public static void main(String[] args) {
思路:
1. 定义变量 代表奖项 int jaingxiang =1;
2.判断结构 if()()else if。。。
3.(1)jiangxiang==1
(2)jiangxiang==2
(3)jiangxiang==3
(4)其他情况, else
4.根据条件依次提示 else
*/
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入您抽得的奖项数字");
int jiang=sc.nextInt();
if(jiang==1){
System.out.println("一等奖,恭喜你获得宝马一辆");
}else if(jiang==2){
System.out.println("二等奖,恭喜你获得保时捷一辆");
}else if(jiang==3){
System.out.println("三等奖,恭喜你获得路虎一辆");
}else{
System.out.println("很遗憾,您没中奖");
}
}
}
【】格式2:
if(判断条件1){
语句块1;
}else if(判断条件2){
语句块2;
}else if(判断条件3){
语句块3
}else if...{
语句块...
}else{
语句块4;
}
流程:如果判断条件1成立执行语句块1,否则执行判断条件2,如果条件2成立则执行语句块2,否则执行判断条件3,条件3成立,则执行语句块3...如果if的判断条件都不成,最后执行else中的语句块4.
格式3(嵌套)
if(判断条件1){
if(判断条件2){
语句1;
}else{
语句2;
}
}else{
if(判断条件3){
语句3;
}else{
语句4;
}
}
-------------------------------------------------------------------------------------------------------
Scanner(扫描器):是Java提供的一个类,用来从控制台接收一个数据
1.创建扫描器
Scanner sc = new Scanner(System.in);
2.使用Scanner 必须打招呼(导包)
声明类的上边:import java.util.Scanner;
3.让扫描器去控制台扫描一个数据
格式:sc.next类型();【类型的首字母大写】
【注】:Scanner中不可以扫描字符型,扫描字符串 next()
定义类名时,千万别起名为java提供的类名,会将java提供的类替换掉
例: Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int a =sc.nextInt() ;
System.out.println("我输入的数字为:"+a);
-----------------------------------------------------------------------------------------------------------
扩展:hasNextInt():扫描下一个输入的是否是整数,如果是则返回true 不是返回false
例: Scanner sc = new Scanner(System.in);
//提示用户输入一个整数
System.out.println("请输入一个整数:");
if(sc.hasNextInt()){
//从控制台接收一个整数,使用变量a进行记录
int a = sc.nextInt();
//打印输入的整数
System.out.println("输入的整数是:"+a);
}else{
System.out.println("你是不是傻?让你输入一个整数");
}
二、老表,来做点题巩固一下吧
1.输入三条边,
(1)判断是否能构成三角形?
(2)判断是否能构成什么类型的三角形?
提示:只有在可以构成三角形的情况下,才能再判断是什么类型的三角形。
import java.util.Scanner;
public class SanJiao {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一条边的长度");
int a=sc.nextInt();
System.out.println("请输入第二条边的长度");
int b=sc.nextInt();
System.out.println("请输入第三条边的长度");
int c=sc.nextInt();
if(a+b>c && a+c>b && b+c>a){
System.out.println("可以构成三角形");
if(a==b && b==c && c==a){
System.out.println("这三条边构成的三角形是等边三角形");
}else if(a*a==b*b+c*c||a*a+b*b==c*c||a*a+c*c==b*b){
System.out.println("这三条边构成的三角形是直角三角形");
}
}else {
System.out.println("这三条边构成不了三角形");
}
}
}
2.输入月份,判断有多少天?
import java.util.Scanner;
public class YueFen {
/*输入月份,判断有多少天?
思路:
1.不管是平年还是闰年,四、六、九、十一月份都是30天;
不管是平年还是闰年,一、三、五、七、八、十、十二月份都是31天;
2.在看二月份的,闰年29天,平年28天;
*/
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入月份");
int months =sc.nextInt();
if(months>=1&&months<=12){
if(months==4||months==6||months==9||months==11){
System.out.println("30天");
}else if(months==2){
Scanner sa=new Scanner(System.in);
System.out.println("请输入年份");
int year=sa.nextInt();
if(year%4==0&&year%100!=0||year%400==0){
System.out.println("闰年:29天");
}else{
System.out.println("平年:28天");
}
}else{
System.out.println("31天");
}
}else{
System.out.println("输入错误,没有这样的月份");
}
}
}
3.成绩是百分制的,请输入成绩,判断成绩所对应的级别:
90~100 优秀
80~89 良好
70~79 中等
60~69 及格
0~59 学什么学。回家种地吧!
import java.util.Scanner;
public class Score{
/*
成绩是百分制的,请输入成绩,判断成绩所对应的级别:
90~100 优秀
80~89 良好
70~79 中等
60~69 及格
0~59 学什么学。回家种地吧!
思路:
1.先扫描输入得到客户输入的成绩;
2.根据客户输入的成绩,判断其分数对应的级别;
3.打印客户输入的成绩对应的级别
*/
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的成绩");
int score=sc.nextInt();
if(score>=90&&score<=100){
System.out.println("优秀");
}else if(score>=80&&score<=89){
System.out.println("良好");
}else if(score>=70&&score<=79){
System.out.println("中等");
}else if(score>=60&&score<=69){
System.out.println("及格");
}else if(score>=0&&score<=59){
System.out.println("学什么学,回家种地吧!");
}else{
System.out.println("输入错误");
}
}
}
若无破釜沉舟之志
何必远行千里之外!!!