一、一些常用的功能Java语句
1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入数据:");//提示
int num = sc.nextInt();//一定要定义一个变量来接受录入数据
注意: 提示必须在接收变量之前且紧接声明接收变量
2.数转百分数
//第一种
double num = 0.16; //如果是整数类型必须先转为double类型,建议直接定义double类型
System.out.println(num*100+"%");
//第二种
double count1 = 0.6;
DecimalFormat df = new DecimalFormat("0.0%");//设置精确的位数,两位小数则0.00%
String r1 = df.format(count1 );
System.out.println("30岁以下的比例是:"+r1);
3.String类型的数转换为int类型
String s = "123456";
int num = Integer.parseInt(s);
4.求一个数的个位,十位,百位,千位,思路用%和/
int i=1234;
int a = i % 10;//个位
int b = (i % 100) / 10;//十位
int c = (i % 1000) / 100;//百位
int d = i / 1000;//千位
5.\n 换行 \t 三个空格 注意是反斜杠
6.产生一个随机数
Math.random()==> 0-1的随机小数(包头不包尾,有0无1),要范围1-10的随机数,则*10+1,在强转为int类型。
int random = (int) (Math.random()*10+1);
理解 相当于数学中的[0,1) 乘10,即两边同时乘10,加1即两边同时加1,得[1,11),其他随机范围同理。
7. 将其他数据类型转为String类型只需要加上一个""
int num =3;
String s=num+"";
二、while循环
语法
初始化语句A
while(循环判断表达式B){
循环操作C
循环变量改变D
}
执行流程: abcdbcd…直到循环判断表达式结果为false时,结束循环(b的结果必为布尔类型)
例子:用while多次重复输入数据
思路: 用布尔类型标记判断是否需要循环,当不需要循环时改变布尔标记的值中断循环
public class Test01 {
public static void main(String[] args) {
int ran = (int) (Math.random() * 100 + 1);
Scanner sc = new Scanner(System.in);
//定义一个布尔类型标记判断是否需要循环
boolean flag = true;
while (flag) {
System.out.println("输入数字");
int num = sc.nextInt();
if (num == ran) {
System.out.println("猜中");
flag = false;//改变布尔标记的值中断循环
} else if (num < ran) {
System.out.println("猜小了");
} else {
System.out.println("猜大了");
}
}
}
三、do while 循环
语法:
初始化语句 A;
do{
循环操作 B
循环变量改变 C
}while(循环条件判断D);
注意最后有分号
流程 abcdbcd…直至循环判断表达式结果为false时结束循环。
四、结束循环
break; 结束整个循环
cotinue; 结束本次循环,执行下一次循环
return;结束所在的方法来结束方法内的整个循环(main方法也是方法)
public class Test07 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for (int i=1;i<=5;i++){
System.out.println("请输入第"+i+"个同学的成绩");
int num = input.nextInt();
if (num <0){
return;
//结束本次执行 执行下一次循环
//continue;
//break;
}
System.out.println(num);
}
}
}
五、循环总结
明确知道循环次数用for循环,不知道循环次数用while循环;
for while 循环可能一次都不执行,初始化语句后第一次判断就为flase;
do while 循环一定会执行一次。
用循环时分析四要素 初始化语句 循环表达式判断 循环操作 避免死循环(改变变量,或者break等语句结束)
一般代码是从上到下,从左到右,for 循环是先执行循环操作,在返回来变量改变。
六、死循环
常见的死循环写法:
for( ; ; ){
}
while(true){
}
do{
}while(true);
实际应用 :即时通讯(网上聊天)需要使用死循环来监听器状态
在实际开发中使用死循环的时候 都会添加停止的循环条件
七、嵌套for循环
常用两次嵌套,最多三次嵌套
语法:
for(初始化语句A;循环条件判断B;循环变量改变C){
for(初始化语句D;循环条件判断E;循环变量改变F){
循环操作
}
}
九九乘法表,与打印*形图案
public class Test06 {
public static void main(String[] args) {
//九九乘法表,双重for循环
for (int i = 1; i <= 9 ; i++) {
for (int j = 1; j <= i ; j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println("");
}
//第一层循环控制行,表i行,第二层控制列,表j列
for (int i = 1; i <=3; i++) {
for (int j = 1; j <= 4; j++) {
System.out.print("*" + "\t");//没有ln,不换行
}
System.out.println("");//换行
}
}
}
八、方法
1.语法:
访问修饰符 返回值类型 方法名称(参数列表) {
方法体;
return 返回值;
}
public static int getSum(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
访问修饰符: public static
返回值类型:在java中必须明确其返回值类型 没有返回值使用void来进行修饰
方法名称:通俗易懂 遵循小驼峰命名
参数列表:参数可以是基本数据类型 也可以是引用数据类型 不同的参数以逗号来进行分割
方法体:执行的具体的逻辑代码
return 返回值; 执行方法获取产出物 得到结果
2.方法的调用
方法必须调用才会执行
直接调用中的执行方法的逻辑代码,即运行方法体一遍,当方法体中有System.out.println输出语句,一定会输出此语句内容,不需要返回的值,所以使用void返回值类型。void返回值类型也能有形参。
3.方法的注意点
1)方法定义的注意点:
方法在调用的时候可以相互进行调用 甚至自己调用自己(递归)
所有的方法都是平级关系 没有上下级关系
2)方法参数注意点
方法定义时候的参数是形参(形式参数) 其实就是声明变量 不同的参数以逗号来进行分割
方法调用时候的参数是实参(实际参数) 其实就是给变量赋值 实际参数的数据类型必须与定义的参数的数据类型一样,但可以与方法返回值类型不一样
3)方法的返回值注意点
A.return 可以用于结束方法 也可以用于返回数据
B.如果方法的返回值类型是void进行修饰的 最后一句必为 return;
用于来结束方法
C.如果方法类型是数据类型, 最后一句必为return 返回数据;
返回的数据类型必须与定义的数据类型一致
D.如果方法有返回值 返回的结果给调用者