if语句
- 单分支结构
if(条件表达式){
语句/语句块;
}
- 双分支结构
if(条件表达式){
语句/语句块1;
}
else{
语句/语句块2;
}
- 多分支结构
if(条件表达式){
语句/语句块1;
}
else if{
语句/语句块2;
}
...
else if{
语句/语句块n;
}
else{
语句/语句块n+1;
}
- 条件表达式可以是关系表达式、逻辑表达式、算术表达式等。
- 该语句的作用是当条件表达式的值为真时,执行if后的语句(块),否则不做任何操作,控制转到if语句的结束点。
switch语句
switch(控制表达式){
case(常量表达式)1;
语句序列1
break;
case(常量表达式)2;
语句序列2
break;
.....
case(常量表达式)n;
语句序列n
break;
}
- 如果case标签后的常量表达式都不等于控制表达式的值,且存在一个default标签,则控制表达式转到default标签后的语句 序列。
- 如果case标签后的常量表达式都不等于控制表达式的值,且不存在default标签,则控制表达式将跳出switch语句执行后继语句。
控制表达式所允许的数据类型:整数类型(byte,short,int)、字符类型(char)或者没有枚举类型。
控制表达式不允许的数据类型:long float double
case标签后的常量表达式只能为常数或常量,不能为变量
for循环
for(初始化设置表达式;循环执行条件;循环变量的增减量){
循环语句序列;
}
for循环结构中的三个表达式都是可选的
- 如果省略循环执行条件表达式,Java即认为循环继续条件永远为真,从而产生死循环。
for each循环
for(变量:数组或集合){
循环体语句序列;
}
- “变量”是一个循环变量,在循环执行过程中,该变量依次获取数组或集合中各元素的值。
- “变量”的类型必须与数组或集合中的元素的类型一致
- 在for each循环体语句序列中,数组或集合的元素是只读的,其值不能改变。
求斐波那契数列前n项和
/**
* 斐波那契数列(Fibonacci sequence),又称黄金分割数列、兔子数列。
* 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
* 在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
*/
public class Fibonacci {
//创建函数fibo()
public static int fibo(int n) {
int f1 = 1;
int f2 = 1;
int f3 = 1;
for(int i = 3;i <= n;i++) {
f3 = f1+f2;
f1 = f2;
f2 = f3;
}
return f3;
}
public static void main(String[] args) {
int sum = 0; //初始化和为0
Scanner input = new Scanner(System.in);
int j = input.nextInt(); //读入要求前多少位斐波那契数
for(int i = 1;i <= j;i++){ //利用循环输出斐波那契数列
System.out.println(fibo(i)); //调用fibo()函数输出斐波那契数列
sum += fibo(i); //求前j项和
}
System.out.println("前"+j+"位斐波那契数列和为:"+sum); //输出所求和
}
}
用for循环产生20个随机数(10-20)
package com.tulun.src;
import java.util.Scanner;
/**
* 用for循环产生20个随机数(10-20);
* a-b; Math.random() *(b-a)+a Math.random():[0,1) double
*/
public class Random {
//构建函数
public static int random(int m){
double a = Math.random() *(20-10)+10; //产生10到20的随机数,为double型
return (int)a; //返回产生的随机数,并将其强转为整形
}
public static void main(String[] args) {
System.out.println("请输入您需要产生的随机数位数:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
//利用for循环产生n位10--20的随机数
for(int x = 1;x <= n;x++){
System.out.print(random(n)+" "); //输出随机数并以空格将两个数分开
//每十个数一行
if(x % 10 == 0){
System.out.println();
}
}
}
}
求一个数字的二进制数有几个1
public static int numof1(int n) {
int count = 0;
while(n != 0) {
if((n &1) != 0) {
count++;
}
n = n >>> 1;
}
return count;
}
public static int numofOne(int n) {
int count = 0;
while(n != 0) {
count++;
n = n & (n-1);
}
return count;
}
next()和nextLine()的区别:
-
next():
读取到有效字符后才可以结束输入;
输入有效字符后再其后面输入的空格作为分隔符或者结束符;
在输入有效字符之前遇到的空格,会自动将其去掉; -
nextLine():
以Enter为结束符,nextLine()返回的是输入回车之前的所有字符。