-
Scanner str = new Scanner(System.in);
-
变量
int we; we = str.nextInt;//为we赋值
-
当浮点数和整数放在一起运算时,java会将整数转换成浮点数,然后进行浮点数的运算。
-
(int + int/12.0)*0.3048=浮点型
-
浮点型:double、float
double inch; inch = str.nextInt;//可行,因为,整数是可以用浮点数来表达的。
浮点型计算是有误差的。
浮点型计算是有误差的。
-
整数类型不能表达有小数部分的数,整数和整数的运算结果还是整数。
-
优先级:单目最高,其余与数学无异
-
强制转换: 只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变。
int foot; foot = (int)(3/3.0);//将浮点型转化为整型
-
自动售票机的工作过程: 用户:(1). 选择线路 (2). 投入币 过程:1. 初始化 //只有一条路线
-
读入投币金额 打印车票
-
计算并打印找零 注释://、/* */、/** */.
-
-
关系运算 ==、!=、>、>=、<、<= (1)、所有的关系运算符的优先级都比算术运算符的低,但是比赋值运算符的高。 (2)、判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的。 (3)、判断浮点型之间的大小一般采用:该比较的两个数的差是否小于一个比较小的数 Math.abs(f1-f2)<0.00001
-
循环 while (1)、读位数 a.判断 1-9,10-99…… b.取余 c.除法 输入的值除以10,进行循环,计数,右往左 (2)、if-判断 while-循环(当条件满足时,我们要不断地重复循环体内的语句。) (3)、do-while 先循环,后判断。[ do{循环体}while(循环条件); ]
-
猜数游戏
-
/**猜数游戏***/ public static void main(String[] args) { // TODO Auto-generated method stub Scanner st = new Scanner(System.in); int a ; int cou=0;//赋初值 int b = (int)(Math.random()*100+1);//[0,1)----->[0,100)----->[1,100] do { a = st.nextInt();//玩家猜入一个数 cou++;//计数,计算玩家一共猜入了几个数 if(a>b) { System.out.println("偏大"); }else if(a<b) { System.out.println("偏小"); } }while(a!=b);//当a==b,跳出循环,否则,一直循环; System.out.print("答对了,恭喜您!!!"); System.out.print("一共答了: "+ cou+"次"); }
-
整数分解
public static void main(String[] args) { // TODO Auto-generated method stub Scanner st = new Scanner(System.in); int number = st.nextInt();//用户输入一个数 int result=0;//分解结果 int prossce;//该整数个位上的数值 do{ prossce = number%10;//取余,取出该整数个位上的数值 result = result*10+prossce;//123 ----> 12*10+3 = 123 number = number/10;//将原个位数上的值取走之后,原十位的值变为个位,重复之前动作直至取完为止 }while(number>0);//循环条件==>输入的数值最后一位的位置上的数值等于0,则被取完 System.out.println("则: "+result); }
13.For循环
(1)、N!
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner st = new Scanner(System.in);
int n = st.nextInt();
int i=1;
int factor=1;
//方法一 while
/**while(i<=n) {
factor = factor*i; //例如 3 : 1*1 1*2 2*3 [factor*i]
i++;
}*/
//方法二 for
for(i=1;i<=n;i++) {
factor = factor*i;
}
System.out.print(factor);
}
14.素数
(1)、只能被1和自己整除的数不包括1
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int enter = sr.nextInt();
int j=1;
for(int i = 2;i<enter;i++) {
if(enter % i == 0) {
j=0;
}
}
if(j==1) {
System.out.println(enter+"是素数!!!");
}else if(j==0) {
System.out.println(enter+"不是素数!!!");
}
}
(2)、break;结束循环
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int enter = sr.nextInt();
int j=1;
for(int i = 2;i<enter;i++) {
if(enter % i == 0) {
j=0;
System.out.println(enter+"不是素数!!!i= "+i);
break;
}
}
if(j==1) {
System.out.println(enter+"是素数!!!");
}else if(j==0) {
System.out.println(enter+"不是素数!!!");
}
}
(3)、continue;结束当前循环进入写一个
(4)、100以内的素数
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int enter ;
int n = sr.nextInt();
for(enter=2;enter<n;enter++) {
int j=1;
for(int i = 2;i<enter;i++) {
if(enter % i == 0) {
j=0;
//System.out.println(enter+"不是素数!!!i= "+i);
break;
}
}
if(j==1) {
System.out.print(enter + " ");
}
}
}
(5)、前50位素数
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
//int n = sr.nextInt();
int prime;
int i;
int count=1;
for(int k=2;k<10000;k++) {
if(count>50) {
break;
}
int j=1;
for(i=2;i<k;i++) {
if(k%i==0) {
j=0;
}
}
if(j==1) {
System.out.print(k+"\t");
count++;
}
}
}
(6)、标号:
循环:
break:\continue:标号
Top: 整个循环结束
例如:攒钱
/*******只出一个方案**********/
public class saveMoney {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int money = sr.nextInt();
//标号
OUT:
for(int one = 0 ; one <= money; ++one) {
for(int five=0;five<=money/5;++five) {
for(int ten=0;ten<=money/10;++ten) {
for(int twenty=0;twenty<=money/20;++twenty) {
if(one+five*5+ten*10+twenty*20==money) {
System.out.println(one+"个1元 + "+ five+"个5元+"+ten+"个10元 + "+ twenty+"个20元="+money+"元");
break OUT;
}
}
}
}
}
}
*********多种结果********
public class saveMoney {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int money = sr.nextInt();
//标号
//OUT:
for(int one = 0 ; one <= money; ++one) {
for(int five=0;five<=money/5;++five) {
for(int ten=0;ten<=money/10;++ten) {
for(int twenty=0;twenty<=money/20;++twenty) {
if(one+five*5+ten*10+twenty*20==money) {
System.out.println(one+"个1元 + "+ five+"个5元+"+ten+"个10元 + "+ twenty+"个20元="+money+"元");
//break OUT;
}
}
}
}
}
}
15.布尔类型 Boolean
(1)、逻辑值 ture\fase
(2)、逻辑运算
a. 逻辑运算是逻辑量进行的运算,只有逻辑量可以参与运算。
b.!(非) &&(与/且) ||(或)
c.区间
d.优先级
// !> && > ||
// e.egs: sum=1-1/2+1/3-1/4+.......+1/n
package One;
/**
* sum = 1+2+3+4+.......+n
* sum = 1+1/2+1/3+......+1/n
* sum = 1-1/2=1/3-1/4.......+1/n
*/
import java.util.Scanner;
public class Sequense {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int n = sr.nextInt();
//方一
int sum=0;
for(int i=1;i<=n;i++) {
sum+=i;
}
System.out.println(sum);
//方2
//int m =sr.nextInt();
double result=0;
for(int i=1;i<=n;i++) {
result += 1.0/i;
}
System.out.printf("%.2f",result);
System.out.println();
//方三
double mout=0;
int sign =1;
//1
for(int i=2;i<=n;i++) {
mout +=sign*1.0/i;
sign=-sign;
}
System.out.printf("%.2f",mout);
System.out.println();
//2
double moutS=0;
for(int i=1;i<=n;i++) {
if(i/2==0) {
moutS+=1.0/i;
}else {
moutS-=1.0/i;
}
}
System.out.printf("%.2f",moutS);
}
}
f.输出有规格规定
System.out.printf("%.2",sum);
(3)、最大公约数
a.枚举法
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sr = new Scanner(System.in);
int a = sr.nextInt();
int b = sr.nextInt();
int result=0;
for(int i =1;i<=a && i<=b;i++) {
if(a%i==0 && b%i==0) {
result=i;
}
}
System.out.println(a + "和" + b + "的最大公约数是: " +result);
}
b.辗转相除法
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner se = new Scanner(System.in);
int a = se.nextInt();
int b = se.nextInt();
int r ;
int as=a;
int bs=b;
System.out.println("a"+"\t"+"b"+"\t"+"r");
while(b!=0) {
r = a%b;
System.out.println(a+"\t"+b+"\t"+r);
a=b;
b=r;
}
System.out.println(as + "和" + bs + "的最大公约数是: " + a);
}
16.数组
(1)、数组
a.读入数组
b.计算平均数
c.输出大于平均值的数
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner se = new Scanner(System.in);
int [] array=new int[100];
int x = se.nextInt();
int result=0;
int count=0;
double ave=0;
while(x!=-1) {
array[count]=x;
result+=x;
count++;
x=se.nextInt();
}
if(count>0) {
for(int i=0;i<=count;i++) {
//System.out.println("该数组为:"+array[i]);
ave = result/count;
if(array[i]>ave) {
System.out.println("大于平均值的数有:"+array[i]);
}
}
System.out.println("平均值:" + ave);
}
}
(2)、创建数组
a. 数组是一种容器
b.特点:所有元素具有相同的数据类型; 一旦创建,不能改变大小;
c.<类型>[]<名字>=new<类型>[元素数量];
元素个数必须是整数;
元素个数必须给出;
元素个数可以是变量;
/**动态决定数组大小**/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner se = new Scanner(System.in);
System.out.println("请输入数组的大小:");
int count = se.nextInt();
int result=0;
double ave;
int [] array = new int[count];
for(int i =0;i<count;i++) {
array[i]= se.nextInt();
result +=array[i];
}
ave = result/count;
for(int i =0;i<count;i++) {
if(array[i]>ave) {
System.out.println(array[i]);
}
}
System.out.println("总和:" + result);
System.out.println("平均值:" + ave);
}
d.索引或下标从0开始(同C) 最小从0开始,最大总个数-1 d.length(长度)==>数组总长度 每个数组有一个内部成员length,会告诉你它的元素的数量
17.数组变量
(1)、数组变量是数组的管理者而非本身;
(2)、数组必须创建出来然后交给数组变量来管理;
(3)、数组变量之间的赋值是管理权限的赋予;
(4)、数组变量之间的比较是判断是否管理同一个数组;
(5)、复制数组 必须遍历原数组将每个元素逐一拷贝给目的数组。
18.遍历数组
(1)、通常使用for循环,让循环变量i从0到数组length,这样循环体内最大的i正好是数组最大的有效数下标
(2)、FOR-EACH循环
for(int k:data){
// data是数组 ......
}//解释:对于数组data中的每一个元素,(取出来作为k的变量)作为循环的每一轮赋予k,k值在变,循环第一轮k=data[0],第二轮k=data[1].......;
//适合于遍历数组 ------->结构------> for(<类型><变量>:<数组>){ ... }
(3)、sqrt(n):n的平方根
19.构造素数表
20.二维数组
21.字符类型
(1)、char char a = ‘a’;=2;=‘加’;
(2)、逃逸字符 用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟上另一个字符,这两个字符合起来,组成一个字符。 ----->\b 回退一格 "双引号 \t 到下一个表格位 '单引号 \n 换行 \反斜杠本身 \r 回车
(3)、包裹类型 每种基础类型都有对应的包裹类型,第一个字母必须是大写 -->boolean Boolean char Character int Integer double Double
a.好处---获得该类型的最大/最小值 Integer.MIN_VALUE Integer.MAX_VALUE
b. .运算符 当需要让一个类或对象做事情时,用.运算符
22.MATH类
abs 绝对值 Math.abs(-12) pow
密次 Math.pow(2,3)
random随机数 Math.random()*100 round
四舍五入 Math.round(10.672)
23.字符串
(1)、用双引号括起来的0个或者多个字符就是一个字符串字面量
(2)、字符串变量: String s; String是一个类,String 的变量是对象的管理者而非所有者。 (3)、创建: new=创建 String s = new String("a String"); 例如:String s = new String("hello"); (4)、初始化字符串变量 String s = "hello";
(5)、字符串链接 a.+
egs: String s =new String("Hello");
System.out.println(s+" world");
result: Hello world
(6)、输入字符串
Scanner in = new Scanner(System.in);
in.next(); //读入一个单词,单词的标志是空格;
in.nextLine(); //读入一整行
空格包括:空格、tab、换行
(7)、对象变量的赋值 egs:
String a;String b; // a=b
//a 和
b 必须管理同一个变量
(8)、比较两个字符串String
a. 比较是否指向同一个(是否管理同一个字符串)
b. 比较内容是否相同 比较用: .equals 比较内容是否相同
(9)字符串操作
A、字符串是对象,对它的操作都是通过“.”这个运算符进行的
B、字符串.操作
C、表示:对.左边的这个字符串做右边的那个操作
D、此字符串可以是变量也可以是常量
E、比较大小:
s1.compareTo(s2)
a.如果s1比s2小,那么结果是负的
b.如果s1和s2相等,那么结果是0
c.如果s1比s2大,那么结果是正的 ==> compareToIgnoreCase 可以不区分大小写地来比较大小 F、length()函数: 获得字符串长度
G、s.charAt(index) 访问字符串里的字符
a.返回在index上的单个字符;
b.index的范围是0到length()-1;
c.第一个字符的index是0,和数组一样
d.不能用for-ench循环来遍历字符串
H、得到子串
a. s.substring(n) 得到:从n号位置到末尾的全部内容
b. s.substring(b,e) 得到:从b号位置到e号位置之前的内容
I、寻找字符
a. s.indexOf(c) 得到: c字符所在的位置,-1表示不存在
b. s.indexOf(c,n) 从n号位置开始寻找c字符
c. s.indexOf(t) 找到字符串t所在的位置
d.从右开始找: s.lastIndexOf(c) s.lastIndexOf(c,n) s.lastIndexOf(t)
J、其他
s.startsWith(t) : 是否以t开头
s.endsWith(t) :是否以t结尾
s.trim() : 删除字符串两端的空格
s.replace(c1,c2): 将字符串中所有的c1都换成
c2 s.toLowerCase() : 将所有字符变成大写字母
s.toUpperCase() : 将所有字母都换成小写
K、switch-case 中可使用字符串(在1.7版本及以上可使用)
switch(s){
case "this":......break;
case "this":......break;
}
=====> 所有的字符串都是不可变的,对它们的操作的结果都是制造新的字符串出来
24.方法(函数)
(1)、函数的定义与调用(类c)
main 程序入口
函数头{ 函数体 } 函数头: public static 返回类型 函数名(参数表)
参数表:类型 变量,类型 变量,类型......
(2)、调用函数
a.函数名(参数值);
b.()起到了表示函数调用的重要作用
c.即使没有参数也需要()
d.如果有参数,则需要给出正确的数量和顺序
e.这些值会被按顺序依次用来初始化函数中的参数
f.从函数中返回值 return g.调入函数时传入值类型必须匹配 char—>int—>double 宽的接受窄的 h.没有返回值 void
i.可以传递给函数的值是表达式的结果: 字面量 变量 函数的返回值 计算的结果
j.传值 每个函数都有自己的变量空间,参数也位于这个独立的空间中,和其他函数没有关系
形参:对于函数参数表中的参数 ==参数
实参:调用函数时给的值 ==值
25.本地变量
(1)、函数的每次运行,就产生了一个独立的变量空间,在这个空间中的变量,是函数的这次运行所独有的,称做本地变量
(2)、本地变量:定义在函数内部的变量(参数亦是)
(3)、变量的生存期和作用域
a.生存期: 出现-消亡
b.作用域: 在(代码的)什么范围内可以访问这个变量(这个变量可以起作用)
c. 对于本地变量:大括号内---块
for(int i=1;i<19;i++){
}
for(int i=1;i<19;i++){
}
(4)、本地变量定义在块内 ===>{内}