java之流程控制
----承接第二章
3.循环结构
2.do-while语句循环
结构:
do{
循环体
}while(判断条件)
注意事项: do-while循环 不管条件是否成立,都会先执行循环体一次
do-while语句的使用
int num = 10;
do {
System.out.println("你开心吗" + number + "次");
number++;
}while(number < 10);
int day = 1;
Scanner scanner = new Scanner(System.in);
String str = "";
do {
System.out.println("今天星期" + day);
System.out.println("你明天上班不?");
day++;
str = scanner.nextLine();
}while(str.equals("上班") && day <= 7);
**特殊:**
int number = 0;
while (number < 10) {
if(number == 5) {
break;
}
System.out.println(number);
number++;
}
3.for语句循环
结构:
for(声明循环增量;判断条件;循环增量自增){
循环体;
}
注意:循环顺序
1️⃣ 2️⃣ 3️⃣
for(int i = 0; i < 5 ; i++){
4️⃣
循环体
}
5️⃣
sout(循环体外)
循环顺序:1->2->4->3 ->2->4->3 ->2...
当循环结束再执行 5
for语句的使用
for(int i = 0;i < 10;i++){
System.out.println("你开心吗?" + i);
}
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum = sum + i;
}
System.out.println(sum);
int num = 0;
for(int i = 1;i <= 100;i++) {
if (i % 7 == 0) {
num++;
}
}
System.out.println(num);
4.嵌套for循环
1️⃣ 2️⃣ 3️⃣
for(int i = 0 ; i < 5 ; i++) {
4️⃣ 5️⃣ 6️⃣
for(int j = 0 ; j < 5 ; j++) {
7️⃣
内循环
}
8️⃣
外循环
}
9️⃣
循环外
循环顺序: 1->2->(4->5->7->6)->(5->7->6)->内循环结束->8->3->(2->内循环结束->8->3)->2
外循环结束 :->9
嵌套for循环的练习
***
***
***
***
***
for(int i = 0;i < 5;i++) {
for(int j = 0; j< 3 ;j++) {
System.out.print("*");
}
System.out.println();
}
*
**
***
****
*****
- 第一种
for (int i = 4; i >= 0; i--) {
for (int j = i; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
- 第二种(提倡使用)
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
*****
****
***
**
*
for (int i = 0; i < 5; i++) {
for (int j = i; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
-----*
----* *
---* * *
--* * * *
-* * * * *
for (int i = 0; i < 5; i++) {
for (int j = i; j < 5; j++) {
System.out.print("-");
}
for (int a = 0; a <= i; a++) {
System.out.print("*");
System.out.print(" ");
}
System.out.println();
}
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + j*i + " ");
}
System.out.println();
}
5.循环的跳出
在for循环中
break 结束当前循环
continue 结束本次循环,继续下次循环
for (int i = 0; i < 10; i++) {
if ( i == 5) {
break;
}
System.out.println(i);
}
for (int i = 0; i < 10; i++) {
if ( i == 5) {
continue;
}
System.out.println(i);
}
}
- 第一种方法,正方向
int max = 0;
for (int i = 0; i <= 100; i++) {
if (i % 7 == 0) {
max = i;
}
}
System.out.println(max);
- 第二种方法,反向
int max = 0;
for (int i = 100; i >= 0; i--) {
if(i % 7 == 0) {
max = i;
System.out.println(max);
break;
}
}
for (int i = 1; i <= 13; i++) {
if(i == 3 || i == 5 || i == 9) {
continue;
}
System.out.println(i + "号,你好");
}
**嵌套循环里,break和continue的使用**
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if(j == 5) {
continue;
}
System.out.print(j);
}
System.out.println();
}
6.三种循环的使用情况
如果有明确的循环停止条件 一般用while循环好写
配合数组 一般使用for循环
一般使用死循环 都使用while
如果不知道要循环多少次 就用死循环
然后用break跳出循环
for循环的死循环
for(;;){
循环体;
}
java之随机数
1.随机数的产生
随机数(系统提供的Math类)
伪随机:计算机在取随机数的时候,都是按照一定规则去随机
random()方法
取值范围[0,1) 0~1之间的小数(留头不留尾)
[最小值,最大值]
公式:
Math.random()*(最大值-最小值+1) + 最小值
int max = 0;
for (int i = 0; i < 10; i++) {
int num = (int)(Math.random() * 186 + 15);
System.out.println(num);
if(max < num) {
max = num;
}
}
System.out.println("max = " + max);
int num1 = (int)(Math.random()*101);
System.out.println("请输入你要猜的数:");
Scanner scanner = new Scanner(System.in);
while(true) {
String str = scanner.nextLine();
int num = Integer.parseInt(str);
if(num > num1) {
System.out.println("猜大了");
}else if (num < num1) {
System.out.println("猜小了");
}else {
System.out.println("猜对了");
break;
}
}
java之函数
1. 概念
函数:封装了特定功能的 代码块 [ 一个{}就代表一个代码块 ]
函数好处: 增加代码的重复使用率,提高效率
函数的写法:
参数列表(可以多个参数 , 也可以没有参数)
关键字 返回值类型 函数名字(参数类型1 参数名1,参数类型2 参数名2,...){
函数体(要执行的代码);
return 返回值;(返回值 和 函数声明上 返回值类型保持一致)
}
函数可以没有返回值
这时 函数声明上的返回值类型 使用void表示
函数名使用 小驼峰写法
关键字 暂时照抄 public static
书写位置:
1.在类中书写
2.函数中 不能定义函数
编写函数步骤:
1.明确函数参数
2.明确函数返回值
**函数的重载(与前端不同):**
当函数的功能相同 但是代码实现不同
可以使用相同的函数名 来声明
注意:函数的重载 只跟参数(的数量,类型,顺序)有关 跟参数名,返回值类型无关
原函数
public static void fun(int a , char b, double c){}
public static void fun(int x , char y, double z){} //报错
public static void fun(int x , double z){} //不报错
public static void fun(int x , double z , char y){} //不报错
2.练习
public static void fun1(int n,int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print("*");
}
System.out.println();
}
}
public static int fun2(int n,int m) {
return n + m;
}
public static int fun2(int a, int b, int c) {
return a + b + c;
}
public static void main(String[] args) {
fun1(5,12);
int sum = fun2(90,4);
System.out.println(sum);
}
public static int sum(int a,int b) {
return a > b ? a : b;
}
public static int sum(int a,int b,int c) {
int num = sum(a, b);
return (num > c)? num : c;
}
public static int sum(int a,int b,int c,int d) {
int num = sum(a, b, c);
return (num > d)? num : d;
}
public static int sum(int a,int b,int c,int d,int e) {
int num = sum(a, b, c, d);
return (num > e)? num : e;
}
**递归函数:在本函数当中调用一个 和自己函数名字相同的 函数**
public static int fun1(int n) {
if(n == 1) {
return 1;
}
return n * fun1(n-1);
}
----------
**如何获取字符串中的字符**
String str = "wangjun";
char c = str.charAt(1);
System.out.println(c);
}