复习:
1.boolean : true,false
案例:
boolean b = false;
if(b=true){}
2.算数运算符:
+ - * / %
% 结果+- 由被除数决定的
整数/0 异常
非0的数/0.0 非0的小数/0 Infinity
0/0.0 0.0/0 0.0/0.0 NaN
保留小数:String.format(“%.2f”,3.4567)
DecimalFormat("0.00") df.format(3.456);
int num = Integer.parseInt("234");
BigDecimal 提供+ - * /方法
2 赋值运算符 :=
左边必须是变量,赋值方向从右到左
强制转换,自动提升
法则:有变量参与的运算,表达式结果最小int
byte b = 1,b2 = 1;
byte r = b+b2; //error
b+=b2; b = b+b2->b = (byte)(b+b2)
3 ++ --
4.比较运算符:> < >= <= == !=
boolean b = 4>x>1 //error
5. 逻辑运算符: &&(&) ||(|) !
短路
6. 位运算符:二进制运算(补码):原码,反码,补码
& | ^ ~
进制:二进制 0b1010 八进制 023 十六进制:0x33ff
-----------------------------------
赋值运算符: += -= *= /= %=
int i = 4;
i += 5; -> i=i+5;
三元运算符
A ? a : b if(){}else{}
结果的数据类型:和a,b相关
String r2 = true?"a":"b";
Object r = true? "hello":23;
Integer i = 23;
double r3 = 3<9 ? 5:4.5;
控制台输入
Scanner sc = new Scanner(System.in);
String str = sc.next();
int num = sc.nextInt();
float f = sc.nextFloat();
double d = sc.nextDouble();
-------------------------------------------
语句种类:
赋值语句:x = 9;
方法调用语句:System.out.print("hello");
Math.max(10,11);
import和package语句
判断 if,switch
循环 for,while,do-while
跳转语句:break,continue
1.import语句:
作用:导入类
格式:import java.util.*; import java.util.Scanner;
位置:class上边,package下边
数量:多个
2.package:
作用:管理类
格式:package cn.tedu.demo;
位置:第一条有效语句
数量:至多一条
------------------------------------------------------
if 语句
1.if(boolean){}
2.if(boolean){}else{}
3.if(boolean){}
if(boolean){}
......
4.if(boolean){}
else if(boolean){}
.......
else{}
switch(){}
(byte,short,int,char,String,Enum)
case n:
语句 ;break;可有可无,如果有,跳出switch语句
没有,继续向下执行,和n无关
.........
default:
语句;
练习
1.接收键盘输入,如果为偶数打印输出
2.输入一个数字表示重量,
如果重量<=20,则每千克收费0.35元;
如果超过20千克不超过100千克的范围,则超过的部分按照每千克0.5元收费;
如果超过100千克,则超过的范围按照每千克0.8元收费。
计算输入的重量对应的总费用
1.接收 控制台输入的年和月份,输出该年该月有多少天
year%4==0&&year%100!=0||year%400==0闰年判断条件
2.控制台输入,两个整数,和运算符,输出结果
--------------------------------------------------
1.for(表达式1;表达式2;表达式3){
语句体;
}
循环原理:
表达式1完成初始化;表达式2判断条件,如果为true,执行与语句体;
表达式3(步长);执行表达式2,直到判断条件为false,跳出循环体
int sum = 0;
for(int i = 1;i<=10;i++){
sum+=i;
}
System.out.println(sum);
2.while(boolean){
循环体;
}
int sum = 0;
int i = 1;
while(i<=10){
sum += i;
i++;
}
3.do{
循环体;
}while(boolean);
int sum = 0;
int i = 1;
do{
sum+=i;
i++;
}while(i<=10);
1. 求1-100以内所有的奇数的和 --- i = 1; i += 2;
2. 打印100以内能被3整除而不能被7整除的数字 --- 先获取3的倍数 int i = 0; i += 3;
3. 输入一个数字,输出这个数字是一个几位数
4. 输入一个数字,输出这个数字的所有的因数 --- 从1开始,逐个数字取余这个输入的数字,看是否能够整除
20:1 2 4 5 10 20
---------------------------------------------------
嵌套循环
for(int i= 1;i<=10;i++){
for(int j= 1;j<=5;j++){
System.out.print("hello");
}
}
循环原理:外出执行一次,内层执行全部
******
******
******
******
******
*
**
***
练习:
九九乘法表
------------------------------------------------
跳转语句:
break:
break:可以用于switch和循环体中
表示跳出循环体(switch语句体)
break语句后的代码永远不能执行
continue:可以用于循环体中
表示结束本次循环,开始新一次循环
语句后的代码永远不能执行
------------------------------------------------
标号语句
out:for(int i = 1;i<=5;i++){
for(int j= 1;j<=4;j++){
if(j==2){
break out;
}
System.out.print(j+" ");
}
System.out.println();
}
练习:
输出2-1000,所有的质数(素数)
求4的阶乘的和 4!+3!+2!+1
百钱百鸡 --- 3文钱1只公鸡,2文钱1只母鸡,1文钱3只小鸡;
100文钱如何买恰好100只鸡?
--- 先定义一个循环表示公鸡,嵌套一个循环表示母鸡,计算小鸡的个数,
根据各种鸡的个数来计算钱数是否为100