For循环 Switch语句

1.三个数中求最大值
利用max函数两两比较,两次得出最大值

System.out.println("fun1():"+(val<1));
return val<1;
}
public ststic boolean fun2(int val){
System.out.println("fun2():"+(val<2));
retrn val<2;}
public static boolean fun3(int val){
System.out.println("fun3():"+(val<3));
return val<3;
}
public static int maxTwo(int a,int b){
/*if(a<b){
System.out.println("a<b");
else{
System.out.println("a>b");
}*/
//两个数比较大小  用max函数
return a > b ? a:b;
}
public static int maxThree(int a,int b,int c){
return maxTwo(maxTwo(a,b),c);
}

For循环:
for(初始化设置表达式,循环执行条件,循环变量的增减量){
循环语句序列;}
注意的是 循环执行条件只能是判断式 true或者false

2.求输入的数字是否为素数?2,3,7

for(int =2;i<n;i++){
if(n%i==0){
return flase;
}
}
return true;
}//思路:素数只能被本身整除,即余数必定为0

3.判断当前年,是否为闰年?
&& 短路与 出现false后面就不会调用; || 短路或 出现true后面不会调用;

/*1.能被4整除不能被100整除
  2.能被400整除*/
  if (year % 4==0 && year % 100 !=0|| year % 400==0){
  return true;
  }
  return false;
  }

4.成绩查询 要求输入等级,输出分数区间

switch (ch){
case'A':
System.out.prinytln("80-90");
break;
case'B':
System.out.println(“70-80“);
break;
case'C':
System.out.println("60-70");
break;
case'D':
System.out.println("60以下");
break;
default;
System.out.println("好好学习");
break;
}
}

switch语句
switch(控制表达式){
case(常量表达式)1;
语句序列1:
break
.
.
default;
语句序列n+1;
break;
}

long fioat double不可以做switch参数 其他包括枚举可以 相应包装类也可做参数
break终止本次循环,dafault跳出循环
5.求1+2+3+4+…+n

public static int sumN(int n){
int sum = 0:
for (int i = 1;i <= n;i ++);{
sum = sum + i;//sum += i;
}
return sum;
}

6.求斐波那契数列的前40项的和
1,1,2,3,5,8,…
F1 = 1, n = 1;
F2 = 1, n = 2;
Fn = Fn-1 + Fn-2 n>=3;

public static void main(String[ ] args){
int f1 = 1,f2 = 1;
for (int i = 1,i <= 20;i ++){
System.out.println("%5d\t%5d\t",f1,f2);/一次输出两项
if (i % 2 == 0);//每行显示四项
System.out.println ();
f1 +=f2;
f2 +=f1;
}
}
}

7.用for循环产生20个随机数 (10-20)
a-b;Math.random( ) *(b-a)+a
Math.random( ):[0,1) 左闭右开 double
利用Math.random()方法获取随机数,把随机数赋值到数组当中,再遍历数组,把随机出来的值,和遍历出数组中的每个值作比较,如果相等就把for循环次数 i-- 回到上一次循环,再把下一个循环出来的值赋值给上一个循环重复的值(通过在次赋值的方式,去掉数组中重复值的)。

	public static void main(String[] args) {
		int arr[] = new int[10];//10个数的数组
		for (int i = 0; i < arr.length; i++) {
			int index = (int)(Math.random() * 20 + 1);//生产一个10-20的随机数
			arr[i] = index;		//把随机数赋值给下标为数组下标为i的值
			
			for (int j = 0; j < i; j++) {//(遍历数组中储存进去的值,i中有几个值则循环几次)
				
				if (arr[j] == arr[i]) {//把储存在数组中的值j 和 随机出的值i 做比较
					i--; //数组的值下标-1,i的循环次数回到上次
					break;
				}
			}
		}
		for (int i = 0; i < arr.length; i++) {//打印数组
			System.out.print(arr[i] + " ");
		}
	}
}

8.输入一个数字,求它是几位数,并且顺序输出,逆序输出

    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    String str = Integer.toString(n);
    System.out.println("它是一个"+str.length()+" 位数");
    System.out.println("顺序输出为:"+str);
    System.out.println("逆序输出为:"+reverseOutput(str));
}
public static String reverseOutput(String str) {
    char[] ch = str.toCharArray();
    char sum = 'a';
    int n = str.length()-1;
    for(int i = 0;i < n/2;i++) {
        sum = ch[n-i];
        ch[n-i] = ch[i];
        ch[i] = sum;
    }
    return String.valueOf(ch);
}

9.求一个数字的二进制有几个1
思路:这个数的二进制减1,然后和这个数求”与“,再减1,和上一个数求“与”,直到为0,减了1的个数就是这个数二进制的1的个数。

    public int NumberOf1(int n) {
        int count = 0;
        while(n!= 0){
            count++;
            n = n & (n - 1);
         }
        return count;
    }
}

猜你喜欢

转载自blog.csdn.net/lmx9813/article/details/83034521
今日推荐