流程控制语句:顺序、循环、选择
多行注释 /* */
可用于相互比较的数据类型
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