2.程序结构
1 import Java.util.Scanner; 2 class scannertest{ 3 public static void main(String[] args){ 4 System.out.println(); 5 Scanner scan = new Scanner(System.in) 6 int num = scan.nextInt( ); 7 } 8 }
scanner类
1.导包: import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in)
3.调用Scanner类的相关方法,来获取指定类型的变量
scanner接受:
String:String string = scan.next( );
除了char其他接受 :Xxx xxx = scan.nextXxxx( );
获取一个char: String string = scan.next();
char a = string.charAt(0);
条件判断表达式(if-else)
如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行声明在上还是在下,无所谓
如果有交集的关系,那么需要根据实际情况,考虑哪个结构在上(包含关系,先选择范围小的 )
获取一个随机数
Math.random( ) 范围:[0.0,1.0)
获取[a,b]: (强转)(Math.random( ) * (b - a +1) +a)
switch-case
switch(表达式){
case 常量1:语句1;break;
case 常量2:语句2;break;
……
default:语句;
}
根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或结构截止
switch 结构中表达式,只能是6种数据类型之一:byte、short、char、int、枚举类型、String类型
循环结构
for(1.初始化条件;2.循环条件Boolean类型;3.迭代条件){
4. 循环体;
}
执行顺序:1-2-4-3-2-4-3
while
1.初始化条件
while(2.循环条件Boolean类型){
4.循环体;
3.迭代条件;
}
循环次数不确定次数时:
for( ; ; )或while(true){
}
结束循环方式:
1.循环条件部分返回false
2.在循环体中,执行break
嵌套循环: 外层控制行数,内层控制列数
质数:只能被1和本身整除的自然数
1 //0-100之间质数 2 boolean IsFlag = true; 3 for(int i = 2;i <= 100; i++){ 4 //或者:boolean isFLAG = true; 5 for(int j = 2;j < i;j++){ 6 if(i % j == 0){ 7 isFlag = false; 8 } 9 } 10 if( isFlag == true ){ 11 System.out.print(i); 12 } 13 isFlag = true;//重置 14 }
优化
boolean IsFlag = true;
//获取当前距离1970-01-10 00:00:00的毫秒数 long start = System.currenTimeMillis(); for(int i = 2;i <= 100; i++){ //Math.sqrt(i);优化二:对质数的自然数有效 for(int j = 2;j < =Math.sqrt(i);j++){ if(i % j == 0){ isFlag = false; break;//优化一:只对本身非质数的自然数是有效的 } } if( isFlag == true ){ System.out.print(i); } isFlag = true;//重置 } long end = System.currentTimeMillis( ); System.our.println(end-strat)
break和continue关键字的使用
使用范围
break switch-case
循环结构中 结束当前循环
continue: 循环结构中 结束当次循环
虽不能至,心向往之