社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
让程序有选择性的执行代码;
场景1:模拟qq登录
如果:用户名密码正确–》登录成功
如果:用户名密码错误–》登录失败
场景2:
语法结构:
If(x){
当x为true的时候执行我括号里面的代码,否则不执行
}
X可以是boolean值,或者是运算为boolean值类型
> If(x){
> 如果x==true那么就执行代码块中的代码,否则不执行
> }
> X:布尔值或者结果值为布尔的表达式
.int a = 20;
if(a<=20){
System.out.println("自动充电!");
}
if(a>20 && a<=100){
System.out.println("自动办公!");
}
> If(x){
> 若x为true则执行大括号中的代码,否则不执行
> }else{
> 若x为false则执行括号中的代码,否则不执行
> }
.int a = 20;
if(a<=20){
System.out.println("自动充电!");
}else{
System.out.println("自动办公!");
}
> If(条件1){
> 如果条件1满足,那么就执行括号中的代码,否则不执行
> }else if(条件2){
> 如果条件2满足,那么就执行括号中的代码,否则不执行
> }else if(条件3){
> 如果条件3满足,那么就执行括号中的代码,否则不执行
> }else if(条件4){
> 如果条件4满足,那么就执行括号中的代码,否则不执行
> }else if(条件5){
> 如果条件5满足,那么就执行括号中的代码,否则不执行
> }else{
> 以上条件都不满足,则执行括号中的代码
> }
> 注意:if后面的{}可以省略的,没有{}它只管一行代码(不推荐使用)
目的:我们主要来判断是,或者不是,对,或者不对
> switch(变量){
> case 变量可能值1:
> 功能执行语句1;
> .............
> break;
> case 变量可能值2:
> 功能执行语句2;
> .............
> break;
> case 变量可能值3:
> 功能执行语句3;
> .............
> break;
> default:
> 功能执行语句;
> }
变量:可以有的类型 byte short char int enum(枚举,java5开始支持的) String
java7开始支持的 目的:我们主要用来选择多个确定的值
生活中比较常见的循环:
吃饭,睡觉,看片,撸代码
单曲循环
歌曲列表循环
…
程序中:
> 如:打印一句话:java是世界上最好的语言 100次
> System.out.println(“java是世界上最好的语言”);
> System.out.println(“java是世界上最好的语言”);
> System.out.println(“java是世界上最好的语言”);
> System.out.println(“java是世界上最好的语言”);
> System.out.println(“java是世界上最好的语言”);
> .........
不用依次去打,在java中已经给我们提供了循环结构,我们只需要把重复的语句放在结构中,只需要设置循环次数,它就会自动给我们打
Java中循环结构:for do-while while
3种循环作用都是一样的,它们之间可以互相替换的,只是语法结构不一样
while语句的语法
while(x){
若x满足其条件则循环该代码快中的内容
}
x:它是一个boolean值或者结果为boolean的一个值
x:boolean值,或者结果为boolean的值
注意:while(x) x是不能直接写false,编译器报错
语法结构:
do{
循环体
}while(x);
x:它是一个boolean值或者结果为boolean的一个值
do-while执行流程:
不管x满不满足条件 循环体都会执行一次
语法结构:
for(①初始化值;②条件;③最后执行的代码){
④循环体
}
for循环执行的流程:
①–》②–》④—》③
②–》④–》③
②–》④–》③
②–》④–》③
②–》④–》③
②–》④–》③
。。。。。。。。。。。
上面的代码打印的值?
循环了几次?
判断了几次?
最后i的值是多少?
for(初始化值;条件;最终执行的代码){
for(初始化值;条件;最终执行的代码){
}
}
注意:for循环不宜嵌套太多for循环,最多2层即可,多了之后对性能很差
For循环的无限循环
for(;;){
}
作用: 主要是用来遍历数组和集合的;
缺点: 没有索引,凡是涉及有索引相关操作还是用普通for循环,
for(源中元素类型 e : 源 ){
直接使用e就可以了
}
源 : 可以是数组或者集合(Iterable接口的实现类)
遍历一个数组也可以使用我们今天学的for循环
①结束当前这一层循环
②验证结束当前这一层
准备嵌套语句
可以给循环添加标签,让break跳出指定的标签
注意:循环嵌套不宜嵌套太多太深,影响性能,一般2层
场景:比如每天干的事情:吃饭 睡觉 打代码
但是我在星期六,不想吃饭,应该怎么办,可以用continue
return 表示结束当前方法
注意 break continue return 后面不能有其它的代码,因为永远执行不到
6.递归函数(了解)
简单理解就是自己调用自己,直到满足一个条件结束自己调用自己的过程,这个就是递归。例子:电影院
(1)使用递归求出 斐波拉切数列
/**
* 什么是递归呢?就是方法自己调用自己
* StackOverflowError : 堆栈溢出
*/
public static void main(String[] args) {
//main(args);
System.out.println(f(1));
System.out.println(f(2));
System.out.println(f(3));
System.out.println(f(5));
}
/*
* 斐波拉切数列
* f(0) = 0;
* f(1) = 1;
* .....
*
* f(n) = f(n-1)+f(n-2); n>=2
* f(5) = f(4)+f(3); 5
* f(4) = f(3)+f(2); 3
* f(3) = f(2)+f(1); 2
* f(2) = f(1)+f(0); 1
*
*/
public static int f(int n){
if(n==0){
return 0; //50%
}else if(n==1){
return 1; //99.9999%
}
return f(n-1)+f(n-2);
}
}
(2)使用递归函数 等差数列求和f(x) = n*(n+1)/2
使用递归的时候呢,一定要给它一个出口,return,就会结构本次方法,返回一个值,否则就是一个无限的嵌套递归,造成堆栈溢出
1.请自己读下列的代码,跟踪分析变量i的值的变化过程。
public class Test{
public static void main(String[]args){
int i=5;
i++;
System.out.println("i="+i); //6
++i;
System.out.println("i="+i);// 7
int a=++i;
System.out.println("a="+a); //a=8
System.out.println("i="+i); //a=8
int b=i++; b=8;
System.out.println("b="+b);//算出来b=9 //算之前b=8!!!!!!!!!!
System.out.println("i="+i); //i=9
}
}
2.考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下E等。
请写一段程序,给定不同的成绩,输出对应的等级。
public static void main(String[] args) {
Show(90);
}
public static void Show(int score) {
String s = null;
if(score<=0&&score>100) {
System.out.println("分数不合法");
}else if(score>=90) {
s = "A";
}else if(score>=80) {
s= "B";
}else if(score>=70) {
s= "C";
}else if(score>=60) {
s= "D";
}else {
s= "E";
}
System.out.println(s);
}
3.使用for循环计算1-10的积
public static void main(String[] args) {
int sum = 1;
for(int i=1;i<=10;i++) {
sum*=i;
}
System.out.println(sum);
}
4.计算 1! + 2! + 。。。10! 1到10的阶乘和
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=10;i++) {
sum+=Number(i);
}
System.out.println(sum);
}
public static int Number(int n) {
if(n==1) {
return 1;
}
return n*Number(n-1);
}
5.使用嵌套循环打印下面图形
> public static void main(String[] args) {
> for(int i=1;i<10;i++) {
> for(int j=1;j<=i;j++) {
> System.out.print(j+" ");
> }
> System.out.println();
> }
> }
> public static void main(String[] args) {
> System.out.println(Show(5, 2, 1));
> }
> public static int Show(int a, int b, int c) {
> if (a < b) {
> if (a < c) {
> return a;
> } else {
> return c;
> }
> } else if (b < c) {
> return b;
> } else {
> return c;
> }
> }
> public static void main(String[] args) {
> int sum = 0;
> for(int i=1;i<100;i++) {
> if(i%3==0) {
> System.out.println(i);
> sum++;
> }
> if(sum==5) {
> break;
> }
> }
> }
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!