XX教育 - basic - day03

一、basic

3、day03

0) day03_all.txt

回顾:
1.变量:存数的
    int a; int b,c;    //声明
    int a=5; int a; a=5;
	int b=a+10; System.out.println(b); //15
	a=a+10;
	System.out.println(m); //编译错误,原因:没有声明和初始化
	int m;
	System.out.println(m); //编译错误,原因:没有初始化
	int m = 4.5; //编译错误,原因:类型不匹配
2.基本数据类型:
  1)int:整型,4个字节,5,25,250...
  2)long:长整型,8个字节,5L,250L,10000000000L...
  3)double:浮点型,8个字节,3.14,5.678,0.5,56.0...
  4)boolean:布尔型(默认false),1个字节,true,false
  5)char:字符型,2个字节,'你','y','0',' '...
3.基本数据类型的转换:
  1)两种方式:
        1.1)自动类型转换:小到大
	1.2)强制类型转换:大到小
	      (要转换为的数据类型)变量
		  有可能会溢出或精度丢失
  2)两点规则:
          byte b1 = 5;
	  byte b2 = 6;
	  byte b3 = b1+b2; //编译错误,bite,short,char参与运算应先转换为int
	  byte b3 = (byte)(b1+b2);
4.Scanner的用法:
   import java.util.Scanner;
   Scanner scan = new Scanner(System.in);
   int age = scan.nextInt();
   double price = scan.nextDouble();


作业时间:30:4032:25


笔记:
1.运算符:
  1)算术运算符:+-*/%,++,--1%取余/取模:适用于整数,char类型(本质为int)以及浮点数
         System.out.println(8.2345%2);  //正确:近似于0.23452++/--:
        1>单独使用时,在前后无差别,eg:++a;  a++;
        2>被使用时,在前在后有差别.  a++的值为a   ++a的值为a+1
          int a=5,b=5;
          int c=a++;    //1)将a++的值5赋给c  2)a自增1变为6
          int d=++b;   
          System.out.println(a);  //6
          System.out.println(b);  //6
          System.out.println(c);  //5
          System.out.println(d);  //6

	  int a=5,b=5;
	  System.out.println(a++);  //5   ++被使用(一个a++一个输出)
          System.out.println(a);    //6
          System.out.println(++b);  //6
          System.out.println(b);    //6

  2)关系运算符:>,<,>=,<=,==,!=       注意:结果为boolean型     ————单条件控制
  3)逻辑运算符:短路与(&&,短路或(||,非(!)   结果为boolean型     ————多条件控制
               &&:两边都为真才为真,见falsefalse,当第一个为false,发生短路(即后面不在执行)
               ||:有一边为真则为真,见truetrue,当第一个为true时,发生短路
    逻辑运算是建立在关系运算之上的
    int a=5,b=10,c=5;
    boolean b3=a>b&&c++>2;
    System.out.println(b3);  //输出:false
    System.out.println(c);   //输出:5   原因:因为a>b为false,发生短路,所以c++并没有执行,若条件为a<6,则c为6
  4)赋值运算符:=,+=,-=,*=,/=,%=
  5)字符串连接运算符:+
  6)三目运算符:boolean?1:2
2.分支结构:
  1)if:1条路
  2)if...else:2条路
  3)if...else if:多条路
  4)switch...case:多条路
    优点:效率高、结构清晰
	缺点:整数、相等
    break:跳出switch



练习:
1.完成AgeRange年龄判断程序
2.完成LeapYear闰年判断程序
3.完成Cashier柜台收银程序
4.完成ScoreLevel成绩等级判断程序
5.完成CommandBySwitch命令解析程序

课后作业:
1)2:完成第11122)3:完成所有


int num=2;
if(num==1){
  111
}else if(num==2){
  222
}else if(num==3){
  333
}else{
  666
}



如果需求正好是对整数来判断相等,首选switch...case




if(score>=0 && score<=100){
	if(score>=90){
		System.out.println("A-优秀");
	}else if(score>=80){
		System.out.println("B-良好");
	}else if(score>=60){
		System.out.println("C-中等");
	}else{
		System.out.println("D-不及格");
	}
}else{
	System.out.println("成绩不合法");
}


A:成绩大于等于90
B:成绩大于等于80并且小于90
C:成绩大于等于60并且小于80
D:成绩小于60

1)ABCD四个档,只有可能走其中之一
2)若没有最后的else,ABC并非必走其中之一
3)若有最后的else,ABCD必走其中之一

int score = 45;
if(score>=90){
  A-优秀
}else if(score>=80){
  B-良好
}else if(score>=60){
  C-中等
}else{
  D-不及格
}


int score = 95;
if(score>=90){
  A-优秀
}else{
  if(score>=80 && score<90){
    B-良好
  }else{
    if(score>=60 && score<80){
	  C-中等
	}else{
	  if(score<60){
	    D-不及格
	  }
	}
  }
}


满足条件就干事,不满足就不干事-------------if
满足条件就干事,不满足干另一个事-----------if...else5008折,不满500不打折------if5008折,不满5009-------if...else




任何复杂的程序逻辑都可以通过三种结构来实现:
1)顺序结构:从上往下逐行执行,每句必走
2)分支结构:有条件的执行某语句,并非每句必走
3)循环结构:8------------------有条件的执行
减100------------------有条件的执行



满5008折
满499100
37折,28折,19折


数量-------------超市购物系统(double)
    -------------淘宝系统(int)
	-------------股票系统(int)


闰年的判断公式:
1)能被4整除并且不能被100整除
或者
2)能被400整除


1)year%4==0 && year%100!=0
||
2)year%400==0


(year%4==0 && year%100!=0) || year%400==0


2000是闰年
2004是闰年
2001不是闰年


并且,或者

age>=18
&&
age<=50


1)AgeRange.java

package day03;
import java.util.Scanner;
public class AgeRange {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年龄:");
		int age = scan.nextInt();
		
		System.out.println(age>=18 && age<=50);
	}
}

2) Cashier.java 柜台收银程序

package day03;
import java.util.Scanner;
//柜台收银程序
public class Cashier {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入单价:");
		double unitPrice = scan.nextDouble();
		System.out.println("请输入数量:");
		double amount = scan.nextDouble();
		System.out.println("请输入金额:");
		double money = scan.nextDouble();
		
		//计算总价(单价*数量)
		double totalPrice = unitPrice*amount;
		if(totalPrice>=500){ //满500
			totalPrice*=0.8; //打8折
		}
		
		if(money>=totalPrice){ //够
			double change = money-totalPrice; //计算找零(给的钱-总价)
			System.out.println("总价为:"+totalPrice+",找零为:"+change);
		}else{ //不够
			System.out.println("ERROR!您给的钱不够");
		}	
	}
}

3) CommandBySwitch.java 命令解析程序

package day03;
import java.util.Scanner;
//命令解析程序
public class CommandBySwitch {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请选择功能: 1.显示全部记录  2.查询登录记录  0.退出");
		int command = scan.nextInt();
		
		switch(command){
		case 1:
			System.out.println("显示全部记录");
			break;
		case 2:
			System.out.println("查询登录记录");
			break;
		case 0:
			System.out.println("欢迎下次再来");
			break;
		default:
			System.out.println("输入错误");
		}
		
	}
}


4) ConditionDemo.java 分支结构的演示

package day03;
//分支结构的演示
public class ConditionDemo {
	public static void main(String[] args) {
		int num = 7;
		switch(num){ //byte,short,int,char
		case 1: //相当于if(num==1)
			System.out.println(111);
			break;
		case 2: //以此为入口
			System.out.println(222);
			break; //跳出switch
		case 3:
			System.out.println(333);
			break;
		default: //所有case都未匹配上时执行
			System.out.println(666);
		}
		
	
		/*
		int num = 5;
		if(num%2==0){
			System.out.println(num+"是偶数");
		}else{
			System.out.println(num+"是奇数");
		}
		System.out.println("over");
		*/
		
		/*
		int num = 5;
		if(num%2==0){
			System.out.println(num+"是偶数");
		}
		System.out.println("over");
		*/
	}
}

5) LeapYear.java 闰年的判断

package day03;
import java.util.Scanner;
//闰年的判断
public class LeapYear {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入年份:");
		int year = scan.nextInt();
		
		boolean flag = (year%4==0 && year%100!=0) 
				       || 
				       year%400==0;
		String str = flag ? year+"是闰年" : year+"不是闰年";
		System.out.println(str);
		
	}
}

6) OperDemo.java 运算符的演示

package day03;
//运算符的演示
public class OperDemo {
	public static void main(String[] args) {
		/*
		 * 6.三目/条件运算符:
		 *   1)语法:
		 *       boolean?数1:数2
		 *   2)执行过程:
		 *       计算boolean的值:
		 *         若为true,则整个表达式的结果为数1的值
		 *         若为false,则整个表达式的结果为数2的值
		 */
		/*
		int a=8,b=55;
		int max = a>b?a:b;
		System.out.println("max="+max);
		*/
		
		/*
		 * 5.字符串连接运算符:
		 *   1)+:
		 *     1.1)两边都是数字,则做加法运算
		 *     1.2)两边出现字符串,则做字符串连接
		 */
	
		/*
		System.out.println(100+200+""+300); //"300300"       
		System.out.println(100+200+300+""); //"600"
		System.out.println(""+100+200+300); //"100200300"
		*/
		
		/*
		int age = 37;
		System.out.println("age="); //age=
		System.out.println(age);    //37
		System.out.println("age="+age); //age=37
		System.out.println("我的年龄是:"+age);
		System.out.println("我今年"+age+"岁了");
		*/
	
		
		/*
		 * 4.赋值运算符:
		 *   1)简单赋值运算符:=
		 *   2)扩展赋值运算符:+=,-=,*=,/=,%=
		 */
		/*
		int a = 5;
		a += 10; //相当于a=a+10
		System.out.println(a); //15
		a *= 2; //相当于a=a*2
		System.out.println(a); //30
		a /= 6; //相当于a=a/6
		System.out.println(a); //5
		*/
		
	
		/*
		 * 3.逻辑运算符:
		 *   1)&&:短路与(并且),两边都为真则为真,见false则false
		 *        第1个数为false时,发生短路(后面的不执行了)
		 *     ||:短路或(或者),有一边为真则为真,见true则true
		 *        第1个数为true时,发生短路(后面的不执行了)
		 *      !:逻辑非(取反),非真则假,非假则真
		 *   2)逻辑运算是建立在关系运算的基础之上的,
		 *     逻辑运算的结果也是boolean型
		 */
		
		/*
		int a=5,b=10,c=5;
		boolean b4 = a<b || c++>2;
		System.out.println(b4); //true
		System.out.println(c);  //5,发生短路了
		*/
		
		/*
		boolean b3 = a>b && c++>2;
		System.out.println(b3); //false
		System.out.println(c);  //5,发生短路了
		*/
		
		/*
		boolean b2 = !(a>b);
		System.out.println(b2);     //!false=true
		System.out.println(!(a<b)); //!true=false
		*/
		
		/*
		System.out.println(a>=b || c<b); //false||true=true
		System.out.println(c<=b || a>b); //true||false=true
		System.out.println(a!=b || b>c); //true||true=true
		System.out.println(a==b || c>b); //false||false=false
		*/
		
		/*
		boolean b1 = a>=b && c<b;
		System.out.println(b1);          //false&&true=false
		System.out.println(c<=b && a>b); //true&&false=false
		System.out.println(a==b && c>b); //false&&false=false
		System.out.println(a!=b && b>c); //true&&true=true
		*/
				
		
		/*
		 * 2.关系运算符:
		 *   1)>(大于),<(小于)
		 *     >=(大于或等于),<=(小于或等于)
		 *     ==(等于),!=(不等于)
		 *   2)关系运算的结果为boolean型,
		 *     关系成立则为true,关系不成立则为false
		 */
		/*
		int a=5,b=10,c=5;
		boolean b1 = a>b;
		System.out.println(b1);   //false
		System.out.println(c<b);  //true
		System.out.println(a>=c); //true
		System.out.println(a<=b); //true
		System.out.println(a==c); //true
		System.out.println(a!=c); //false
		*/
		
		/*
		 * 1.算术运算符:+,-,*,/,%,++,--
		 *   1)%:取余/取模,余数为0即为整除
		 *   2)++/--:自增1/自减1,可在变量前也可在变量后
		 *     2.1)单独使用时,在前在后无差别
		 *     2.2)被使用时,在前在后有差别
		 *            a++的值为a
		 *            ++a的值为a+1
		 */
		
		/*
		int a=5,b=5;
		//1)输出a--的值5
		//2)a自减1变为4
		System.out.println(a--); //5
		System.out.println(a);   //4
		//1)输出--b的值4
		//2)b自减1变为4
		System.out.println(--b); //4
		System.out.println(b);   //4
		*/
		
		/*
		int a=5,b=5;
		int c = a++; //1)将a++的值5赋值给c  2)a自增1变为6
		int d = ++b; //1)将++b的值6赋值给d  2)b自增1变为6
		System.out.println(a); //6
		System.out.println(b); //6
		System.out.println(c); //5
		System.out.println(d); //6
		*/
		
		/*
		int a=5,b=5;
		a++; //相当于a=a+1
		++b; //相当于b=b+1
		System.out.println(a); //6
		System.out.println(b); //6
		*/
		
		/*
		System.out.println(5%2); //1,商2余1
		System.out.println(8%2); //0,商4余0--整除
		System.out.println(2%8); //2,商0余2
		System.out.println(8.2345%2); //0.2345
		*/
	}
}

7) ScoreLevel.java 成绩等级判断

package day03;
import java.util.Scanner;
//成绩等级判断
public class ScoreLevel {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入成绩");
		int score = scan.nextInt();
		
		if(score<0 || score>100){
			System.out.println("成绩不合法");
		}else if(score>=90){ //score>=0 && score<=100
			System.out.println("A-优秀");
		}else if(score>=80){
			System.out.println("B-良好");
		}else if(score>=60){
			System.out.println("C-中等");
		}else{
			System.out.println("D-不及格");
		}
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单@De@小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值