Java有一个库: 用一存放专家编写好的类、接口等工具。
其中,有一个数学类在 java.lang.Math;
注意: 凡是在 java.lang.* ;包中的类、接口;则可以直接使用,不需要导入(即: 会自动导入)。
1、数学类 Math 的作用:
1) 为程序提供数学函数,用来解决一些数学问题。
2) 为程序提供一些数学上的常量,如: 圆周率PI
2、数学类 Math所提供的常用方法( 函数 )如下:
1) abs( x ); 用来求x的绝对值。
2) sqrt( x ); 用来求x的平方根。
3) pow( x, y ); 用来求x的y次方。
4) random(); 用来产生一个 [0, 1) 范围的随机数。
5) round( x ); 用来对 x 进行四舍五入反馈一个long型整数。
6) 提供圆周率常量 PI
思考:
1、产生一个[-100 , 100]范围的 随机整数。
2、产生一个[32 , 999] 范围的 随机整数。
3、如何生一个[0, 100]范围且保留1位小数的double型数。
*/
public class MathTest {
public static void main( String[] args ) {
int x = -199;
int y = Math.abs( x ); //求x的绝对值,并将结果赋给y。
System.out.println("你给定的整数是: " + x + ",求其绝对值为: " + y );
x = 3;
double d1 = Math.sqrt( x );
System.out.println("你给定的整数是: " + x + ",其平方根是: " + d1 );
x = 5;
y = 3;
d1 = Math.pow( x, y );
System.out.println("求" + x + "的" + y + "次方,结果是:" + d1 );
d1 = Math.random( ); //产生一个 大于或等于0,而且小1的随机数
System.out.println("产生一个 大于或等于0,而且小1的随机数,是: " + d1 );
x = (int) (100 * Math.random()); //产生一个[0, 99]范围的随机整数。
System.out.println("随机的整数是: " + x ) ;
d1 = 31.1237895123;
long t1 = Math.round( d1 );
System.out.println("\n你给定的double型数是: " + d1 + " ,对其四舍五入取整数得: " + t1 );
double d2 = Math.round( d1 * 100 ) / 100.0 ;
System.out.println("\n给定的double型数是: " + d1 + " ,对其四舍五入并保留两位小数得: " + d2 );
double r = 3.78;
double area = Math.PI * Math.pow( r, 2 );
System.out.println("\n给定圆的半径r = " + r + ",及给定圆周率PI = " + Math.PI
+ ";则该圆的面积area = " + area );
}
}
/*
1、什么是流程控制?
它指的是:程序的执行顺序可以根据需要进行相应的控制。
2、计算机语言中流程控制结构有三种:
1) 顺序结构。
2) 选择结构。
3) 循环结构。
3、在Java中,选择结构的语句有两种:
1) if语句。
2) switch语句。
4、if语句有三种形式:
1) 单向的if语句。
格式: if( 条件 ){
语句块;
}
规则: 先判断条件,若条件成立,则做语句块;之后,结束if而往下走。
若条件不成立,则不做语句块而直接往下走。
2) 双向的if语句。
格式: if( 条件 ){
语句块1;
}else{
语句块2;
}
规则: 先判断条件,若条件成立,则做语句块1;之后,结束整个if而往下走。
若条件不成立,则做语句块2;之后,结束整个if而往下走。
它相当于 ? : 条件运算符。
3) 多向的if语句。
格式: if( 条件1 ){
语句块1;
}else if( 条件2 ){
语句块2;
}else if( 条件3 ){
语句块3;
}
......
}else if( 条件n ){
语句块n;
}else{
语句块m;
}
规则: 先判断条件1,若其成立,则做语句块1;之后,结束整个if而往下走。
若条件1不成立,则判断条件2;若条件2成立,则做语句块2;之后,结束整个if而往下走。
依次下去。当所有条件均不成立时,则会做语句m。之后,结束整个if而往下走。
*/
public class StreamCtrlTest {
public static void main( String[] args ) {
int x = (int)( 101 * Math.random() ) - 100; //[-100, 0]
System.out.println("产生的随机整数是: " + x );
if( x < 0 ){
System.out.println("条件成立了。");
System.out.println(x + " 的绝对值是: " + Math.abs( x ) );
}
int a = (int)(999 * Math.random() );
int b = (int)(313 * Math.random() );
if( a >= b ) {
System.out.println("\n条件成立了。");
System.out.println(a + " 大于或等于 " + b);
}else{
System.out.println("\n条件不成立。");
System.out.println(a + " 不大于 " + b );
}
System.out.println("\n程序结束了。");
}
}
/*
3) 多向的if语句。
格式: if( 条件1 ){
语句块1;
}else if( 条件2 ){
语句块2;
}else if( 条件3 ){
语句块3;
}
......
}else if( 条件n ){
语句块n;
}else{
语句块m;
}
规则: 先判断条件1,若其成立,则做语句块1;之后,结束整个if而往下走。
若条件1不成立,则判断条件2;若条件2成立,则做语句块2;之后,结束整个if而往下走。
依次下去。当所有条件均不成立时,则会做语句m。之后,结束整个if而往下走。
思考:
产生三个随机整数,只能用if语句对它们进行由小到大排序。
若是四个或五个随机整数,那又如何排序?
目的: 找到一种排序的规律。
*/
public class IfTest1 {
public static void main( String[] args ) {
int grade = 250; //(int)( 101 * Math.random() );
String result = "结果";
if( !(grade >= 0 && grade <= 100) ){
System.out.println("你给定的成绩是: " + grade + ",它是非法的!" );
System.out.println("byebye!");
System.exit( 0 ); //结束整个程序的运行
}
if( grade >= 95 ){
result = "优秀" ;
} else if( grade >= 85 ){
result = "良好" ;
} else if( grade >= 75 ){
result = "中等" ;
} else if( grade >= 60 ){
result = "Pass了";
} else {
result = "继续努力!" ;
}
System.out.println("你的成绩是: " + grade + " ,它属于: " + result + "。");
}
}
/*
1、switch语句(开关语句)
格式:
switch( 表达式 ){
case 值1 : 语句系列1; [ break; ]
case 值2 : 语句系列2; [ break; ]
case 值3 : 语句系列3; [ break; ]
......
case 值n : 语句系列n; [ break; ]
[ default : 语句系列m; ]
}
规则:
先计算表达式的值,再找到与表达式的值对应的case,接着做它后面的
所有语句系列,当遇到 break; 语句时,则结束整个switch而往下走。
当遇不到 break; 时,则会继续会下做。
当找不到与表达式的值对应的case,且有default项存在时,则会做default项;
之后,结束整个switch而往下走。
注意: 1) 表达式的类型必须是 byte 或 short 或 char 或 int 型。
2) case后的 值1、值2、...、值n ,它们必须是byte或short或char或int型常量。
3) 当连续的多个case后的语句系列是一致的,则前n-1个均可省略。
思考:
产生一个[0, 100]范围的成绩,只能用switch语句判断该成绩属于哪个档次。
档次为: [90, 100] 范围时,则为 "优秀" ;
[80, 89] 范围时,则为 "良好" ;
[70, 79] 范围时,则为 "中等" ;
[60, 69] 范围时,则为 "及格" ;
[0, 59] 范围时,则为 "继续努力!";
*/
public class SwitchTest {
public static void main( String[] args ) {
//产生一个随机的字母
char ch = 'a'; ///(char)( 26 * Math.random() + 'a' );
String str = "存放结果";
System.out.print("随机字母是:\'" + ch + "\'" );
switch( ch ){
case 'a':
case 'e' :
case 'i' :
case 'o' :
case 'u' : str = "元音" ; break;
case 'y' :
case 'w' : str = "半元音" ; break;
default : str = "辅音" ;
}
System.out.println(",它属于: " + str + " 。" );
}
}
/*
1、什么是循环?
在某种条件,一个语句块需要反复执行。
2、Java中的循环语句有三种:
1) 当循环( while 循环 )。
2) 直到循环( do---while循环 )。
3) 从什么到什么循环( for循环 )。
3、当循环的应用
1) 格式
while( 条件 ){
循环体;
}
2) 规则
当条件成立时,则做循环体一次;之后,返回去再次判断条件;
若条件仍然成立,则继续做循环体;依此类推,
当条件为假时,则结束整个while而往下走。
4、通过案例来理解并掌握为什么需要循环,循环如何进行?
输出一个 5
输出五个 5
输出100个 5
思考:
要求输出100个5且每行10个。
*/
public class LoopTest1 {
public static void main(String[] args ) {
int n = 1; //计数器
while( n <= 100 ) { //判断计数器超过了5次吗
System.out.print( 5 ); //打印
n++; //计数
}
System.out.println("\n当计数器n = " + n + "时,程序结束了。");
}
}