/* 并非一次判断得到的结果---用开关()
* 1.boolean flag = true;假设是质数
* 2.flag = false; 改为不是质数
* 3.if else 判断得结论
* 判断数最多到这这个数的平方根就行了。省时
* 比如求100旳质数,求它的平方根,只判断2~10就已经够了,根据经验得知。
* */
import java.util.Scanner;public class Foundation {public static void main(String[] args) {int count=0;for(int num=2;num<=100;num++){boolean flag =true;for(int i=2;i<=Math.sqrt(num);i++){if(num%i==0){flag=false;break;}}if(flag){count++;//质数个数增1,计数器System.out.print(num+"t");if(count%10==0){System.out.println();}}}}}/*方法:
* 1.方法:函数/过程
* 1.1)用于封装一段特定的逻辑功能
* 1.2)方法尽可能的独立(一个方法只干一件事)
* 1.3)方法可以被反复的调用多次
* 1.4)避免代码的重复,便于代码的维护,有利于
* 团队开发。
* 2.方法的定义:
* 修饰词、返回值类型、方法名、参数列表、方法体
* 方法执行完之后,需要用到方法中的某个数--需要用返回值
* 3.方法的调用:
* 3.1)无返回值方法(有参传参);
* 3.2)有返回值的方法:
* 数据类型 变量 = 方法名(有参传参)
* 4.return:
* 4.1)return 值 ://4.11结束方法的执行 4.12)返回一个值
* 4.2)return; 结束方法的执行(只能用在void的类型里)
* 5.猜字符小游戏:
* 分析:
* 5.1)数据结构:
* 5.1.1)char[] chs;//随机生成的字符数组
* 5.1.2)char[] input;//用户输入的字符数组
* 5.1.3)int letterRight;//字符对的个数
* int positionRight;//位置对的个数
*
* int[] result; //对比的结果
* 5.1.4)int score;//得分
* int count;//猜错的次数
* 5.2)设计程序结构:方法
* 5.2.1)主方法:
* public staic void main(String[] args){
*
* }
* 5.2.2) 随机生成字符数组:
* public staic char[] generage(?){
* char[] chs = new chs[5];
* //给chs中的每一个元素随机赋值
* return chs;
* }
* 5.2.3)对比:随机字符数组与用户输入的字符数组
* public static int[] (char[] chs,char[] input){
* int[] result = new int[2];
* //
* return result;
* }
* 5.3)设计算法:方法的实现
* 对基本类型判断相等,用==
*
* */
猜字符游戏:
//猜字符游戏import java.util.Scanner;public class Guessing {public static void main(String[] args) { Scanner scan = new Scanner(System.in);char[] chs = generate();System.out.println(chs);int count=0;while(true){//自造死循环System.out.println("猜吧!");String str = scan.next().toUpperCase();//获取用户输入的字符串,并转换成大写字母if(str.equals("EXIT")){System.out.println("下次再来吧!");break;}char[] input = str.toCharArray();//将字符串转换成字符数组int[] result = check(chs,input);//对比随机字符数组与用户输入的字符比if(result[0]==chs.length){//猜对了int score = 100*chs.length-10*count;//一个字符100分,猜错1次减10分System.out.println("恭喜你,猜对了,得分为:"+score);break;}else{//猜错了count++;//猜错次数增1System.out.println("字符对个数:"+result[1]+",位置对个数:"+result[0]);}}}//随机生成字符数组public static char[] generate(){char[] chs = new char[5];//随机字符数组、char[] letters ={'A','B','C','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};//字符可选范围数组 boolean[] flags = new boolean[letters.length];//开关数组,默认值为false,表示未存过for(int i=0;i<chs.length;i++){ int index;//随机下标do{ index=(int)(Math.random()*25);//生成随机下标(0到25) }while(flags[index]==true);//若下标对应的开关为true时,表示已存过,则重新生成index //当下标对应的开关为false时,则循环结束,表示未存过chs[i]=letters[index]; //基于index下标去letters中获取数据 ,并赋值给chs中的每一个元素 flags[index]=true; //修改Index下标对应的开关为true,表示已存过 }return chs;} //对比:随机字符数组与用户输入的字符数组public static int[] check(char[] chs,char[] input){int[] result = new int[2];//对比结果//result[1]为字符对 result[0]为位置对//位置对在字符对的基础之上for(int i=0;i<chs.length;i++){for(int j=0;j<input.length;j++){if(chs[i]==input[j]){//字符对result[1]++;//字符对个数增1if(i==j){//位置对result[0]++;}break;//退出一次循环}}}return result;}}