java if语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java if语句相关的知识,希望对你有一定的参考价值。

java

条件语句,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等。
本部分对于条件语句的介绍,重点在于语法讲解和基本的使用,更详细的使用参看后续的综合示例部分。
在Java语言中,条件语句主要有两类语法:if语句和switch语句。

1 、if语句
if关键字中文意思是如果,其细致的语法归纳来说总共有三种:if语句、if-else语句和if-else if-else语句,下面分别进行介绍。

1.1 if语句
该类语句的语法格式为:if(条件表达式)
功能代码;语法说明:if是该语句中的关键字,后续紧跟一对小括号,该对小括号任何时候不能省略,小括号的内部是具体的条件,语法上要求该表达式结果为boolean类型。后续为功能的代码,也就是当条件成立时执行的代码,在程序书写时,一般为了直观的表达包含关系,功能代码一般需要缩进。
需要特别注意的是:
1、 这里的功能代码只能是一行,关于多行结构的功能代码,后续将说明。
2、 if(条件表达式)后续一般不书写分号if语句的执行流程为:如果条件表达式成立,则执行功能代码,如果条件表达式不成立,则不执行后续的功能代码。
示例代码:
int a = 10;
if(a >= 0)
System.out.println(“a是正数”);
if( a % 2 == 0)
System.out.println(“a是偶数”);
在该示例代码中,第一个条件是判断变量a的值是否大于等于零,如果该条件成立则执行输出,第二个条件是判断变量a是否为偶数,如果成立也输出。
注意以下代码的执行流程:
int m = 20;
if( m > 20)
m += 20;
System.out.println(m);
按照前面的语法格式说明,只有m+=20;这行代码属于功能代码,而后续的输出语句和前面的条件形成顺序结构,所以该程序执行以后输出的结果为20.如果当条件成立时,需要执行的语句有多句,则可以使用语句块来进行表述,语法格式如下:
if(条件表达式)
功能代码块;

使用这种语法格式,使用一个代码块来代替前面的功能代码,这样可以在代码块内部书写任意多行的代码,而且也使整个程序的逻辑比较清楚,所以在实际的代码编写中推荐使用该种逻辑。

1.2 if-else语句
if-else语句实现了封闭的条件,在程序中使用的更加常见。其中else关键字的作用是“否则”,即条件不成立的情况。
if-else语句的语法格式如下:
if(条件表达式)
功能代码1;
else
功能代码2;
语法说明:其中前面的部分和if语句一样,else部分后面是功能的代码,按照该语法格式,功能代码只能有一句。
执行顺序:如果条件成立,则执行if语句中的功能代码1,否则执行else中的功能代码2.示例代码为:
int n = 12;
if(n % 2 != 0)
System.out.println(“n是奇数”);
else System.out.println(“n不是奇数”);
则因为n%2的值是0,条件不成立,则执行else语句的代码,程序输出“n不是奇数”。
在实际使用时,为了结构清楚,以及可以在功能代码部分书写多行代码,一般把功能代码部分使用代码块,则语法格式为:
if(条件表达式)
功能代码块
else
功能代码块

当程序中有多个if时,else语句和最近的if匹配。示例代码:
if(条件1)
功能代码1;
if(条件2)
功能代码2;
else功能代码3;
则这里的else语句和条件2对应的if语句匹配,前面的条件1是一个独立的语句。在实际代码中,可以使用大括号使整个程序的结构更加清楚。
对于if-else语句来说,因为if的条件和else的条件是互斥的,所以在实际执行中,只有一个语句中的功能代码会得到执行。
在实际开发中,有些公司在书写条件时,即使else语句中不书写代码,也要求必须书写else,这样可以让条件封闭。这个不是语法上必须的。

1.3 if-else
if-else语句在现实中,有些时候的条件不是一个,而是一组相关的条件,例如将阿拉伯数字转换为中文大写,根据分数转换为对应的等级等,都是多条件的结构,在程序中为了避免写多个if语句的结构,提供了一类专门的多分支语句,这就是if-else if-else语句。
if-else if-else语句的语法格式为:
if(条件1)
功能代码1;
else if(条件2)
功能代码2;
else if(条件3)
功能代码3;
……
else功能代码;
语法说明:
1、 else if是else和if两个关键字,中间使用空格进行间隔。
2、 条件1到条件n都是boolean类型
3、 else if语句可以有任意多句
4、 最后的else语句为可选
5、 如果功能代码部分不是语句块,也就是不用大括号,就只能写一句。
执行流程:当条件1成立时,则执行功能代码1;当条件1不成立且条件2成立时,则执行功能代码2;如果条件1、条件2都不成立且条件3成立,则执行功能代码3,依次类推,如果所有条件都不成立,则执行else语句的功能代码。其执行流程的流程图如上所示。
下面是一个实现根据月份的值,输出该月份包含的日期数,2月份全部输出28,不考虑闰年的示例代码:
int month = 3;
int days = 0; //日期数
if(month == 1)
days = 31;
else if(month == 2)
days = 28;
else if(month == 3)
days = 31;
else if(month == 4)
days = 30;
else if(month == 5)
days = 31;
else if(month == 6)
days = 30;
else if(month == 7)
days = 31;
else if(month == 8)
days = 31;
else if(month == 9)
days = 30;
else if(month == 10)
days = 31;
else if(month == 11)
days = 30;
else if(month == 12)
days = 31;

System.out.println(days);
再来看一个示例代码,该代码的功能是实现将百分制的成绩转换为A、B、C、D和E,代码如下:
int score = 87;
if(score >= 90)
System.out.println(‘A’);
else if(score >= 80)
System.out.println(‘B’);
else if(score >= 70)
System.out.println(‘C’);
else if(score >= 60)
System.out.println(‘D’);
else
System.out.println(‘E’);

从该代码中可知,每个else if语句在书写时是有顺序的,在实际书写时,必须按照逻辑上的顺序进行书写,否则将出现逻辑错误。
if-else if-else语句是Java语言中提供的一个多分支条件语句,但是在判断某些问题时,会书写的比较麻烦,所以在语法中提供了另外一个语句——switch语句来更好的实现多分支语句的判别。
----->参考资料:http://blog.csdn.net/qinglu/article/details/3071853
参考技术A if (boolean) 或者 if() else 或者 if() else if()... else本回答被提问者采纳 参考技术B 是想了解结果还是有什么其它问题?
如果结构的话有有如下几种,
1: if(判断条件){
语句;


2: if(判断条件){
语句;
else{
语句;


3: if(判断条件){
语句;
else if(判断条件){
语句;
else
语句;
参考技术C java中的if和c语言的差不多,你可以上网上搜很多的

Java基础6-控制语句

一、控制语句的种类

java控制语句主要分为7种

1.控制选择结构语句

  • if, if else
  • switch

2.控制循环结构语句

  • for
  • while
  • do while

3.改变控制语句顺序

  • break
  • continue

一、控制选择结构语句

1.if,if else语句

关于java语言中的if语句,属于选择结构,if语句又被称为分支语句/条件控制语句:
1.if语句的语法结构:四种编写方式
第一种:
if(布尔表达式){
java语句;
}
第二种
if(布尔表达式){
Java语句;
}else{
java语句;
}
第三种
if(布尔表达式){
java语句;
}else if(布尔表达式){
java语句;
}
else if(){
}
第四种
if(布尔表达式){
Java语句;
}else{
java语句;
}
第三种
if(布尔表达式){
java语句;
}else if(布尔表达式){
java语句;
}
else if(){
}else{
}
4.所有控制语句都可以嵌套使用,只要合理嵌套就行
注意:嵌套使用的时候,代码格式要保证完美【该缩进的时候必须要缩进】
5.if语句的分支中只有一条java语句的话,大括号可以省略不写,不推荐
if(true/false)java语句;

import java.util.Random;
//导包

public class call
{
    public static void main(String[] args){
//创建一个随机数对象r
    Random r=new Random();
//在0-11这12个数中产生一个随机数赋值给i
    int i=r.nextInt(12);
String name0="王海文";
String name1="李宝林";
String name2="田雨";
String name3="桑建武";
String name4="王龙翔";
String name5="郭佳讯";
String name6="陈敬瑜";
String name7="魏仲豪";
String name8="王宇飞";
String name9="高健";
String name10="李壮壮";
String name11="张禄";
//判断i的值并打印输出相对应的姓名
if(i==0){
System.out.println(name0);
}
else if(i==1){
System.out.println(name1);
}
else if(i==2){
System.out.println(name2);
}
else if(i==3){
System.out.println(name3);
}
else if(i==4){
System.out.println(name4);
}
else if(i==5){
System.out.println(name5);
}
else if(i==6){
System.out.println(name6);
}
else if(i==7){
System.out.println(name7);
}
else if(i==8){
System.out.println(name8);
}
else if(i==9){
System.out.println(name9);
}
else if(i==10){
System.out.println(name0);
}
else if(i==11){
System.out.println(name11);
}
    }
}
if,else if语句代码示例,随机点名系统

2.switch语句

1.switch语句也属于选择结构,也是分支语句
2.switch语句语法结构
switch(int或String类型的字面值或变量){
case int或String类型的字面值或变量:
java语句;
break;
case int或String类型的字面值或变量:
java语句;
break;
default:
java语句;
}
3.switch语句的执行原理:
switch后面小括号当中的“数据”和case后面的“数据”进行一一匹配,匹配成功的分支语句执行。
4.匹配成功的分支执行,分支当中最后有break语句的话整个switch语句终止。
5.匹配成功的分支执行,分支当中没有break语句的话,直接进入下一个分支执行【不进行匹配】,这种现象被称为case穿透现象
6.所有分支都没有匹配成功,当有default语句,会执行default分支当中的程序
7.switch后面和case后面只能是int或String类型的数据,不能使探测其他类型,当然byte、short、char也可以直接写到switch和case后面,因为可以自动转换成int。
8.case可以合并:
int i=10;
switch(i){
case 1:case 2:case 3:case 10:
System0out.println("aaa")
}
*/

import java.util.Scanner;
public class workday
{
    public static void main(String[] args){
    System.out.println("请输入1-7中任意数字");
    Scanner sc=new Scanner(System.in);
//控制台输入,后边说
    int num=sc.nextInt();
    switch(num){
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
//若num=1,2,3,4,5都会执行输出去上班
    System.out.println("滚去上班");
    break;
    case 6:
    case 7:
    System.out.println("尽情嗨起来");
    break;
    default:
    System.out.println("大傻逼,输错了");
    break;
        }
    }
}
switch语句代码示例

二、控制循环结构语句

1.for循环

1.for循环的结构
for(初始化表达式:布尔表达式:更新表达式){
是需要重复执行的代码片段【循环体:由java语句构成】
}
2.for循环的执行过程/重复原理?
2.1 初始化表达式、布尔表达式、更新表达式都不是必须的,但是两个分号是必须的;
2.2 初始化表达式最先执行,并且在整个for循环当中只执行一次
2.3 布尔表达式必须是true/false
2.4 for的执行过程

for(① ; ; ③){

}

第一步,执行

第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步

第三步,执行

第四步,执行③,然后重复执行第二步

第五步,退出循环

用for循环打印菱形(嵌套):

public class circulation
{
    public static void main(String[] args){
    
//这个是打印直角三角形
for (int i=1;i<=7;i++ )
//外层循环控制行
    {
        
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
        System.out.println("\\n");
    }
    //倒序排列,倒直角三角
for (int i=1;i<=9 ;i++)
{
    for (int j=9;j>=i ;j-- )
    {
//当j大于i时打印输出*,例如当i=1,j=9,j>i,输出*,j-1=8>i=1,继续输出*,当j--到1时,j=i,条件不满足,结束本次循环
//外层循环此时i<9,i+1=2<9,满足条件,再进行内层for循环,以此往复。
        System.out.print("*");
    }
    System.out.println("\\n");
}

//打印菱形的2组for循环,并且每组for循环里又嵌套3个for循环,共8个for循环
for (int i=1;i<=8 ;i++ )
    {
        for (int k=8;k>i ;k-- )
        {
//当满足k>i这个条件就打印空格
        System.out.print(" ");
        }
//打印完空格后紧接着在空格后边打印*
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
//上边循环打印完成后紧接着继续打印一组*
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
//"\\n"是一个转义字符,为换行
        System.out.println("\\n");
    }
//这是倒菱形的下半部分,倒三角形
for (int i=1;i<=7 ;i++)
{
    for (int k=1;k<=i ;k++ )
    {
    System.out.print(" ");
    }
    for (int j=7;j>=i ;j-- )
    {
    System.out.print("*");
    }
    for (int j=7;j>=i ;j-- )
    {
        System.out.print("*");
    }
    System.out.println("\\n");
}
/*for (int i=1;i<=8 ;i++ )
    {
    for (int k=8;k>i ;k-- )
    {
        System.out.print(" ");
    }
        for (int j=1;j<=i ;j++ )
        {
            System.out.print("*");
        }
        System.out.println("\\n");
    } */
    }
}

2.while循环

1、while和do while循环语法结构
while(布尔表达式){
循环体
}
2.while循环的循环次数:
0~N次
注意:while循环的循环体可能执行次数为0次

3.do while循环

do {

执行语句

} while(循环条件){};

 先执行再循环

4.无限循环

while(true){}

for(;;){}

无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

class note11 
{
    public static void main(String[] args) 
    {
        while(true){
        System.out.println("死循环");
        }
        //编译器检测到该程序永远都无法被执行,所以编译报错
        System.out.println("Hello World!");
    }
}
import java.util.Scanner;
import java.util.ArrayList;
class Bitch 
{
    
    public static void main(String[] args) 
    {
        ArrayList<Fuck> list=new ArrayList<Fuck>();
        //while无限循环与switch语句嵌套使用
        while(true){
            switch (Choose())
            {
            case 1:
                inventory(list);
                break;
            case 2:
                AddGoods(list);
                break;
            case 3:
                alter(list);
                break;
            case 4:
                delete(list);
                break;
            case 5:
//当用户输入5的时候结束循环,否则循环一直执行
                return;
                default:
                System.out.println("您选择的功能有误,请重新输入!");
                break;
            }
        }    
    }
    //用户选择;
    public static int Choose(){
    System.out.println("-------------------库存管理--------------");
    System.out.println("1.查看库存清单");
    System.out.println("2.添加商品信息");
    System.out.println("3.修改商品信息");
    System.out.println("4.删除商品信息");
    System.out.println("5.退出");
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入您的选择");
    int num=sc.nextInt();
    return num;
    }
    //添加商品信息
    public static void AddGoods(ArrayList<Fuck> list){
    Scanner sc=new Scanner(System.in);
    while (true)
        {
        System.out.println("1.继续添加商品");
        System.out.println("2.退出");
        int number=sc.nextInt();
        if (number==1)
        {
            Fuck you=new Fuck();
            System.out.println("请输入您要添加的商品品牌/尺寸/价格/数量");
            you.brands=sc.next();
            you.size=sc.nextDouble();
            you.price=sc.nextDouble();
            you.counts=sc.nextInt();
            list.add(you);
        }else{
        return;
        }
    inventory(list);
        }
    }
    //修改商品信息
public static void alter(ArrayList<Fuck> list){
    Scanner sc=new Scanner(System.in);
    while(true){
        System.out.println("1.继续修改");
        System.out.println("2.退出");
        int number=sc.nextInt();
        switch(number){
            case 1:
            System.out.println("---------当前商品库存信息--------");
            System.out.println("商品编号\\t商品品牌\\t库存数量");
            for(int i=0;i<list.size();i++){
            System.out.println((i+1)+"\\t"+list.get(i).brands+
            "\\t"+list.get(i).counts);
                }
            System.out.println("请输入您要修改的商品编号:");
            int num=sc.nextInt()-1;
            System.out.println("请输入您要修改的商品数量:");
            list.get(num).counts=sc.nextInt();    
            inventory(list);
            break;
            case 2:
                return;
            default:
            System.out.println("大傻逼");
            break;
            }
        }
    }
//删除商品信息
public static void delete(ArrayList<Fuck> list){
        System.out.println("---------当前商品库存信息--------");
        System.out.println("商品编号\\t商品品牌\\t库存数量");
        for(int i=0;i<list.size();i++){
            System.out.println((i+1)+"\\t"+list.get(i).brands+
            "\\t"+list.get(i).counts);
        }
        System.out.println("请输入您要删除的商品编号:");
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt()-1;
        list.remove(num);
    }
    //查看库存清单
    public static void inventory(ArrayList<Fuck> list){
    System.out.println("---------------商城库存清单-------------");
    System.out.println("商品品牌\\t商品尺寸\\t商品价格\\t库存数量");
    double SumCounts=0;
    int    SumPrice=0;
    for (int i=0;i<list.size();i++ )
    {
        System.out.println(list.get(i).brands+\'\\t\'+list.get(i).size+\'\\t\'+list.get(i).price+\'\\t\'+list.get(i).counts);
        SumCounts+=list.get(i).counts;
        SumPrice+=list.get(i).counts*list.get(i).price;
    }
    System.out.println("-----------------------------------------");
    System.out.println("总库存数:"+SumCounts);
    System.out.println("总金额:"+SumPrice);
    
    }
}
无限循环

三、循环控制语句

break
1.break语句同样可以使用在循环语句当中,用来终止循环
2.break语句可以使用在for,while,do...while循环语句中用来跳出循环
continue
1.表示继续,下一个
2.主要出现在循环语句控制循环的执行
3.break和continue的区别?
break表示循环不执行了
continue表示直接进入下一个

以上是关于java if语句的主要内容,如果未能解决你的问题,请参考以下文章

java中的if语句

java if语句嵌套if语句

java中那些情况使用if语句时可以不用else?

新手求问 java中的if条件语句的用法

java if 语句默认

java用if语句要怎么判断一个字符串里是不是有逗号?