Java选择结构

203 阅读4分钟

流程控制语句:顺序、循环、选择

多行注释 /* */

可用于相互比较的数据类型

1.int类型和long类型之间是可以相互比较的,byte、short、int和long类型之间都是可以相互比较的

2.与整型一样,浮点型之间也是可以进行比较的

3.浮点型和整型之间可以进行比较

4.整型和字符型之间是可以进行比较的,是将整型和字符型的编码值进行比较

5.字符串和整型、浮点型以及字符型是不可以进行比较的,以int类型为例,会出现Incompatible operand types int and String的错误提示,说明int和String类型不兼容

6.关于布尔类型,它是不能和任何其他数据类型进行比较的

选择结构

-多重if

if(表达式1)

   语句1;

else if(表达式2) (else表示上面if条件取反,且需满足表达式2)

   语句2;

else if(表达式3)

   语句3;

else

   语句n;

-嵌套if

if(表达式1)

    if(表达式2)

        if(表达式3)

            语句;

else

    语句;

-switch结构

区别:if结构判断条件是布尔类型,是一个范围;switch结构判断条件是常量值

(表达式的值必须是一个常量,jdk 7.0以后表达式的值可以是基本数据类型的byte、short、

int、char,以及String类型)

switch(表达式){  

   case 常量表达式1:

           语句1;break;

   case 常量表达式2:

            语句2;break;

    default:

            语句3;

}

只有当case没有包含所有的可能时,才执行default语句。

eclipse定义的switch格式:source-format

String week=sc.next();
week=week.toUpperCase();//把字符串中的字符全部改为大写

Scanner sc=new Scanner(System.in);//该语句右边有黄色三角
Resource leak:'sc' is never closed

这是一个警告信息,表示Scanner对象没有关闭,并不影响程序运行。

解决办法:在方法的最后使用sc.close()关闭Scanner对象

多种数据类型接收方法总结

Scanner从键盘接收不同数据类型数据的方法如下:

接收数据            方法

int类型              nextInt()

long类型           nextLong()

float类型           nextFloat()

double类型       nextDouble()

字符串类型        next()

布尔类型            nextBoolean()

Java并没有提供直接接收字符数据的方法,而是先接收字符串数据,然后进行转换。如下代码所示:先从键盘接收字符串类型数据,存储到字符串类型的变量str中,然后通过字符串的charAt()方法获得输入的第一个字符。

//从键盘接收char类型数据
System.out.println("请输入数据:");
String str=sc.next();
char ch=str.charAt(0);
System.out.println(ch);

虽然输入了三个字符abc,但是最后的输出结果只有a,这是因为使用str.charAt(0)只得到了str字符串的第一个字符。

循环结构

-while,do while,for

while(循环条件)

{

      语句;

}

1.n的值必须先进行初始化

2.循环变量n的值必须被改变

do

{

     语句;

}while(循环条件);

1.do-while循环至少执行一次

2.循环条件后的分号不能丢

随机数

int number=Math.random();

Math.random()得到[0,1)之间的随机数

for(表达式1;表达式2;表达式3)

{

      语句;

}

1.表达式1在循环中只执行一次

2.局部变量的作用范围:只在定义它的大括号内有效

for循环注意事项

三个表达式都是可以省略的

三种循环结构的应用场景

1.for循环适用于循环次数固定的场景

2.while循环适用于不知道循环次数,只知道循环达到某个条件可以执行时使用

3.do-while循环适用于不知道循环具体执行次数,只知道满足某个条件继续执行或结束执行,并且循环肯定执行一次时使用

break语句

1.break语句可以结束当前循环的执行

2.执行完break语句后,循环体中位于break语句后面的语句就不会被执行

3.在多重循环中,break语句只向外跳一层

continue语句

1.continue语句只能用在循环里

2.continue语句可以结束当前循环的执行,但是要继续下一次循环的执行

-循环嵌套

外重循环 内重循环

题1:用星号输出一个梯形,如下图所示:(使用嵌套for循环完成)

package com.imooc;
public class FloatDemo {
	public static void main(String[] args) {	
		for(int i=1;i<=5;i++){
			for(int j=1;j<=5-i;j++){
				System.out.print(" ");
			}
			for(int k=1;k<=i*2+1;k++){
					System.out.print("*");
			}
		System.out.println();
		}
	}	
}

调试

1.设置断点

2.执行调试

3.单步调试 F6

断点跳跃 F8