【JAVA基础学习】选择、循环结构详细讲解!!!

目录

选择结构

if单选择结构

if双选择结构

if多选择结构

switch多选择结构

循环结构

while循环

do....while循环

for循环

增强for循环

break & continue

练习

选择结构

if单选择结构

有很多时候需要先去判断一个东西是否可行,然后才去执行,这么一个过程在程序中用if语句表示

语法:if(布尔表达式){//如果布尔表达式为true,则执行此语句}

Scanner scanner=new Scanner(System.in);
System.out.println("请输入内容:");
String str=scanner.nextLine();
//equals:判断字符串是否相等
if(str.equals("Hello")){
    System.out.println(str);
}
scanner.close();

if双选择结构

通俗而言就是有两条路,如果可执行就走其中一条路,不可执行就走另外一条路

语法:

if(布尔表达式){

//如果布尔表达式为true,则执行此语句

}else{

//如果布尔表达式为false,则执行此语句

}

Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩:");
int score=scanner.nextInt();
if(score>=60){
    System.out.println("成绩及格");
}else{
    System.out.println("成绩不及格");
}
scanner.close();

if多选择结构

现实中我们存在的情况不是只有AB,还可能存在ABCD,所以需要有多选择结构来满情况多的案例

语法:

if(布尔表达式 1){

//如果布尔表达1式为true,则执行此语句

}else if(布尔表达式 2){

//如果布尔表达式2为true,则执行此语句

}else if(布尔表达式 3){

//如果布尔表达式3为true,则执行此语句

}else{

//如果以上布尔表达式都为false,则执行此语句

}

Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩:");
double score=scanner.nextDouble();
if(score==100){
    System.out.println("满分");
}else if(score<100 && score>=90){
    System.out.println("A");
} else if (score<90 && score>=80) {
    System.out.println("B");
} else if (score<80 && score>=70) {
    System.out.println("C");
} else if (score<70 && score>=60) {
    System.out.println("D");
}else{
    System.out.println("不及格");
}
scanner.close();

switch多选择结构

多选择结构还有一个实现方式就是switch case语句

switch case语句判断一个变量与一系列值中的某个值是否相等,每一个值称为一个分支

格式:

switch(expression){

case value:

//语句

break;//可选

case value:

//语句

break;//可选

//你可以有任意数量的case语句

default://可选

//语句

}

switch语句中的变量类型可以是:

  • byte short int或者char

  • 从JavaSE7开始

  • switch支持字符串String类型了

  • 同时case标签必须为字符串常量或字面量

    char grade='A';
    switch (grade){//case:穿透,如果满足其中一个case,要是后面没有出现break来终止的话,该程序就会一值跑下去
        case 'A':
            System.out.println("优秀");
            break;//可选
        case 'B':
            System.out.println("良好");
            break;//可选
        case 'C':
            System.out.println("及格");
            break;//可选
        case 'D':
            System.out.println("加油");
            break;//可选
        case 'E':
            System.out.println("挂科");
            break;//可选
        default:
            System.out.println("再见");
    }
    String name="啊泰";
    //JDK7新特性:switch支持字符串String类型了
    switch (name){
        case "啊明":
            System.out.println("啊明");
            break;
        case "啊昊":
            System.out.println("啊昊");
            break;
        case "啊泰":
            System.out.println("啊泰");
            break;
    }

循环结构

while循环

while循环是最基本的循环,他的结构为:

while(布尔表达式){

//循环内容

}

注意:

  • 只要布尔表达式为true,循环就会一直执行,会影响程序性能或者造成程序卡死崩溃,要避免

  • 大多数情况是会让循环停下来,所以需要一个表达式失效的方式来结束循环

  • 少部分循环是需要一直执行,比如服务器请求响应监听等

//输出1+2+3+4+....100
int sum=0;
int i=1;
while (i<=100){
    sum=sum+i;
    i++;
}
System.out.println("1+2+3+4+....100="+sum);

do....while循环

前提:对于while而言,只要不满足条件,则不能进入循环,但有时候即使不满足条件,我们也想让他执行一次

do...while循环和while循环相似,不同点在于,do...while循环至少会被执行一次!

do{

//代码语句

}while(布尔表达式);

//输出1+2+3+4+....100
int sum=0;
int i=1;
do {
    sum+=i;
    i++;
}while (i<=100);
System.out.println(sum);

while和do...while区别:

  • while先判断在执行,do...while是先执行后判断

  • do...while循环至少会被执行一次!

int a=0;
while (a<0){
    System.out.println(a);
}
System.out.println("==================");
do {
    System.out.println(a);
}while (a<0);

for循环

for循环,使一些循环结构变得更加简单

for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构

for循环执行的次数是在执行前就开始确定的,语法格式如下:

for(初始化; 布尔表达式 ; 更新){

//代码语句

}

for (int i=1;i<=100;i++){
    System.out.println(i);
}
System.out.println("for循环结束");
//计算0~100之间的奇数和偶数的和
//基数
int sum1=0;
for (int i=1;i<100;i+=2){
    sum1=sum1+i;
}
System.out.println("0~100之间的奇数和为:"+sum1);
//偶数
int sum2=0;
for (int i1=2;i1<100;i1+=2) {
    sum2 += i1;
}
System.out.println("0~100之间的偶数和为:"+sum2);
//一步到位写法
int oddSum=0;
int evenSum=0;
for (int i = 0; i < 100; i++) {
     if (i%2!=0){
          oddSum+=i;
    }else{
           evenSum+=i;
    }
}
System.out.println("奇数的和:"+oddSum);
System.out.println("偶数的和:"+evenSum);
//用while或for循环输出1~100之间能被5整除的数,并且每行输出3个
//for
for(int i=1;i<100;i++){
    if(i%5==0){
        System.out.print(i+"\t");
    }
    if (i%(5*3)==0){//每行输出3个
        System.out.println();
    }
}
//while
int a=1;
while (a<100){
  if(a%5==0){
     System.out.print(a+"\t");
  }
   if (a%(5*3)==0){//每行输出3个
     System.out.println();
  }
     a++;
}
//打印九九乘法
for(int i=1;i<=9;i++){
    for (int j=1;j<=i;j++){
        System.out.print(j+"*"+i+"="+(j*i)+"\t");
    }
    System.out.println();
}

增强for循环

语法如下:

for(声明语句:表达式){

//代码句子

}

声名语句:声名新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者返回值为数组的方法

主要是用于数组或集合的循环

int[]numbers={10,20,30,40,50};//定义了一个数组
//遍历数组元素
for(int x:numbers){
  System.out.println(x);
}

break & continue

break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强制退出循环, 不执行循环语句中剩余的语句(break语句也在switch语句中使用)

int i=0;
while (i<100){
    i++;
    System.out.println(i);
    if(i==30){
        break;//强制终止循环
    }
}

continue:语句用在循环语句体中,用于终止某次循环过程,及跳过循环体中尚未执行的语句, 接着进行下一次是否执行循环的判定

int i=0;
while (i<100){
    i++;
    if(i%10==0){
        System.out.println();
        continue;//只是终止此次循环,会跳到下一个循环
    }
    System.out.print(i+"\t");
}

练习

//打印三角形
for (int i=1;i<=5;i++){
    for(int j=5;j>=i;j--){
        System.out.print(" ");
    }
    for (int j=1;j<=i;j++){
        System.out.print("*");
    }
    for (int j=1;j<i;j++){
        System.out.print("*");
    }
    System.out.println();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值