For迴圈 Switch語句
阿新 • • 發佈:2018-12-12
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;
}
}