一.hellowrld程序
1.system.in/out
2.scanner in =new scanner(system.in),创建对象
3.shift+方向多选行
4.ctrl+/注释
5.变量使用
6.public static void main()
7.常量:final int amount=100;
二.判断分支语录
1.math.abs(a1-a2)<1e-6
2.if(a>b)判断语句
{
do something
}
else
{
do other things
}
3.switch(type)判断语句
{
case 1:
lalala;
break;
case 2:
lalala2;
break;
default:
lalala3;
break;
}
三.循环语句
1.while语句
2.do
{ <循环体> }while(<条件>};
3.int 4字节,[2^31-1,2^31]
.
4.for 循环for(i=1;i<=n;i++)
5.支持标号的使用,可以用标号来退出循环
OUT:
for()
{
for()
{
break OUT;
}
}
6.continue 和 break的使用
7.system.out.printf("%.2f",sum)可以格式化输出
8.最大公约数求解
9.欧几里得辗转相除法:
四.数组的使用
1.int [] numbers=new int[100];创建数组
.
2.数组使用要注意范围大小
3.JAVA可以用变量作为数组大小int [ ]numbers=new int [cnt]
4.数组的内部元素,length,numbers.length,使代码具有可扩展性
5.JAVA会初始化数组为0
6.int[ ]numbers= {1 , 2 , 3 };
7.数组变量是指针,指向新创建的数组空间,对指针进行赋值,则两个数组变量指向同一个内存空间
8.数组变量是管理者
9.数组的复制要逐个元素进行赋值
10. for-each循环可以读出数组元素,但不能进行修改
package hello;
import java.util.Scanner;
public class Helloworld {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int []data={1,11,23,45,3};
int x=in.nextInt();
boolean found=false;
for(int k:data)
{
if(k==x)
{
found=true;
}
}
if(found)System.out.print(x+"在其中");
}
}
五.素数判断
1.优化:除2偶数不是素数,可减少至n/2
if(x==1 || x%2==0 && x!=2)
{ isPrime=false;
}
else
{
for(int i=3;i<x;i+=2){if(x%i ==0){isPrime=false;break;}}}
2.优化:找到sqrt(x)就可以了
for(int
i=3;i<Math.sqrt(x);i+=2)
{
if(
i%x==0)
{
isPrime=false;
break;
}
}
3.优化:建立50素数表
public class Helloworld {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int []prime=new int[50];
prime[0]=2;
int cnt=1;
boolean isPrime=true;
loop:
for(int x=3;cnt<50;x++)
{
for(int j=0;j<cnt;j++)
{
if(x%prime[j]==0)
{
continue loop;
}
}
prime[cnt++]=x;
}
for(int k:prime)
{
System.out.print(k+" ");
}
}
}
4.优化:利用筛法将非素数筛除
public class Helloworld {
public static void main(String[] args) {
boolean[]isprime=new boolean[100];
for(int i=2;i<isprime.length;i++)
{
isprime[i]=true;
}
for(int i=2;i<isprime.length;i++)
{
if(isprime[i])
{
for(int k=2;i*k<isprime.length;i++)
{
isprime[i*k]=false;
}
}
}
for(int i=0;i<isprime.length;i++)
{
if(isprime[i])
{
System.out.print(i+" ");
}
}
}
}
5.二维数组:
int [][]a=new int[3][5];
a[0][1]=5;
或者int [][]a={{1,2,3,4},{1,2,3}};
六.字符
1.char a='A'; JAVA使用UNICODE编码 char a='\u0041';
2.逃逸字符:\t
3.包裹类型变量:Integer.MAX_VALUE 有一些特殊的方法可以调用
4.需要让一个类或者对象做事情的时候用.调用
5.String s;String是一个类,是字符的管理者
String s=new String(" hello");或者String s="hello";
6.in.nextln()读入字符
7.对两个字符串进行比较时不能用==,要用s.equals("bye");
8.字符串操作:比较字符大小s.compareTo(s2);
字符串长度s.length();
访问String里的字符S.charAT(index);
取出子串s1.substring(2,4);得到2-3号子串到结尾之前
寻找字符s.indexOf(c);//返回位置,没找到返回-1,如果要找到重复元素int loc =s.indexOf('3') 然后s.indexOf('3',loc+1);
以某个字符开头s.startsWith(t);//结尾s.endsWith(t);
删除两段空格s.trim();
字符串替换s.replace(c1,c2);
变成大写s.toUpperCase() //小写s.toLowerCase();
9.Math类:abs,pow,random,roud//四舍五入
七.函数//方法
1.方法的声明
2.方法调用
return 返回值;void没有返回值
3.参数传递的时候传递的是变量的值,