复习:
boolean类型,有true和false两个
算术运算符:+、-、*、/、%
%的结果的正负由被除数决定
整数/0 产生异常
非零的数/0.0,非零的小数/0 ,结果为 infinity
0.0/0、0/0.0、0.0/0.0结果都是NaN
保留小数:
1.String.format("%.2f",3.4567)
2.DecimalFormat(“0.00”),df.format(3.456);
3.int num = Integer.pseInt(“123”);
还有BigDecimal提供了加减乘除的方法,进行数据的计算
赋值运算符:=
左边必须是变量,复制的方向是从右到左的
强制转换(右边大左边小)和自动提升(右边小左边大)
法则:有变量参与的运算,表达式的结果最小为int
比较运算符:>,<,>=,<=,==,!=
逻辑运算符:&&,||,!
关于短路,&&和||会产生短路现象,&和|不会有短路现象
位运算符:二进制(补码运算),原码、反码、补码
三元运算符: A?a:b,结果的数据类型和a,b相关
object r = true?“hello”:“23”;
public class Demo03_1 {
public static void main(String[] args) {
//接受键盘输入,如果为偶数打印输出
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int a = sc.nextInt();
Object r = a%2==0?a:"这不是偶数";
System.out.println(r);
}
}
语句种类:
赋值语句: x=9;
方法调用语句:
System.out.print(“hello”);
Math.max(10,11);
import和package语句,package是用于定义包,管理类
表示判断的: if和switch
循环语句: for ,while,do……while
跳转语句: break,continue
import:用于导入类
格式: import java.util.*;
快捷键导入包: ctrl+shift+o
位置: class上面,在package的下面
可使用数量: 多个
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{}
public class Demo03_2 {
public static void main(String[] args) {
//输入一个数字表示重量,如果重量<=20,则每千克收费0.35元;
//如果超过20千克不超过100千克的范围,则超过的部分按照每千克0.5元收费
//如果超过100千克,则超过的范围按照每千克0.8元收费
//计算输入的重量对应的总费用
Scanner sc = new Scanner(System.in);
System.out.println("请输入货物的重量");
double d = sc.nextDouble();
if(d<=20){
d*=0.35;
}else if(d<=100){
d=20*0.35+(d-20)*0.5;
}else{
d=20*0.35+80*0.5+(d-100)*0.8;
}
System.out.println(d);
}
}
switch语句:
switch(){}
(byte,short,int,char,String,Enum(在jdk1.7以后添加的))类型
case n(和上面的类型相匹配):语句;break;(可有可无,如果有,跳出switch语句,没有,继续向下执行,和n的值无关)
……
default:语句;
package cn.tedu.demo;
import java.util.Scanner;
public class Demo03_4 {
public static void main(String[] args) {
// 输入两个数和一个运算符计算出结果
Scanner sc = new Scanner(System.in);
System.out.println("输入两个数字:");
double a = sc.nextDouble();
double b = sc.nextDouble();
System.out.println("输入一个运算符");
String r = sc.next();
switch (r) {
case "+":
System.out.println(a+b);
break;
case "-":
System.out.println(a-b);
break;
case "*":
System.out.println(a*b);
break;
case "/":
System.out.println(a/b);
break;
case "%":
System.out.println(a%b);
break;
default:
System.out.println("输入的字符不存在!");
break;
}
}
}
——————————————————————————————
循环原理:
for(表达式1;表达式2;表达式3){ 语句体; }
表达式1完成初始化,表达式2判断条件,如果为true,执行语句体;表达式3(步长)
int sum = 0;
for(int i = 1;i<=10;i++){sum+=1;}
system.out.println(sum);
while(boolean){循环体;}
int sum = 0;
int i = 1;
while(i<=10){sum+=1; i++;}
do{循环体;}while(boolean);
int sum = 0;
int i = 1;
do{sum+=i;}while(i<=10);
嵌套循环
for(){while(){for(){ } } }
嵌套原理:外层执行一次,内层执行全部
外层循环列,内层循环的是行
跳转语句:break和continue
break可以用于switch和循环体中,表示跳出循环体和switch语句体,break语句后的代码永远不能执行(和break在同一个括号内)
continue,可以用于循环体中,表示可以结束本次循环,开始下一次循环。语句后面的代码永远不能执行
————————————————————————————
标号语句:
out:for(int i = 1;i<=5;i++){
for(int j = 1;j<=4;j++){
if(j==2){
break out;
//跳出标志了out的循环语句,哪里有out就在哪里跳出循环
} System.out.print(j+"/t"); }
System.out.println(); }
练习:
package cn.tedu.demo;
import java.util.Scanner;
/**
* 下午实训
* @author cll
* 时间:2020年7月17日14:36:36
*/
public class Demo03_5 {
public static void test1(){
/*
* 求打印1-100以内的所有的奇数的和
*/
int sum=0;
for(int i=1;i<=100;i+=2){
sum+=i;
}
System.out.println(sum);
}
public static void test2(){
/*
* 打印100以内的可以被3整除而不能被7整除的数字——先获得3的倍数
*/
System.out.println("是3的倍数不能被7整除的有:");
for(int k=1;k<=100;k++){
if(k%3==0){
if(k%7!=0)
System.out.print(k+" ");
}
}
}
public static void test3(){
/*
* 输入一个数字,输出这个数字是一个几位数
*/
Scanner sc = new Scanner(System.in);
System.out.println("输入一个数字:");
int k=0;
int i=sc.nextInt();
while(i!=0){
i=i/10;
k++;
}
}
public static void test4(){
/*
* 输入一个数字,输出这个数字的所有的因数
*/
Scanner sc1 =new Scanner(System.in);
System.out.println("input:");
int m = sc1.nextInt();
for(int l = 1;m>=l;l++){
if(m%l==0){
System.out.println(l);
}
}
}
public static void test5(){
//执行嵌套循环
for(int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
System.out.print(i+"×"+j+"="+i*j+" ");
}
System.out.println();
}
}
public static void test6(){
out:for(int i = 1;i<=5;i++){
for(int j = 1;j<=4;j++){
if(j==2){
break out;
//跳出标志了out的循环语句,哪里有out就在哪里跳出循环
}
System.out.print(j+"/t");
}
System.out.println();
}
}
//输出2-1000,所有的质数(素数)
public static void test7(){
for(int q = 2;q<=1000;q++){
int sum=0;
for(int k = 2;k<q;k++){
if(q%k==0){
sum++;
break;
}
}
if(sum==0){
System.out.println(q);
}
}
}
//求4的阶乘和4!+3!+2!+1
public static void test8(){
int sum1 =0;
for(int q = 1;q<=4;q++){
int sum = 1;
for(int w = 1;w<=q;w++){
sum*=w;
}
sum1+=sum;
}
System.out.println(sum1);
}
/*
* 百钱白鸡
* 3文钱一只公鸡,两文钱一只母鸡,一文钱3只小鸡;100文钱如何恰好买100只鸡
*/
public static void test9(){
int x,y,z;
int sum = 100;
for(x=1;x<=33;x++){
for(y=1;y<=50;y++){
z = 100-x-y;
if(z%3==0&&(2*x+3*y+1/3*z==sum)){
System.out.println("("+x+","+y+","+z+")");
}
}
}
}
public static void main(String[] args) {
test8();
}
}