java基础及时第三天

复习:
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();

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值