目录
一、Scanner
二、顺序结构
三、选择结构
四、循环
五、break、continue、return
具体内容
一、Scanner
1.1Scanner对象
1.1.1 next():
next必须读取到有效的字符串才可以停止;在输入有效字符前遇到的空白,next()方法会自动将其过滤掉;之后输入有效字符后才会把后面输入的空白作为分隔符或者结束符。
1.1.2 nextLine()
nextLine()是以enter键作为结束符。可以获取空白。
我们在编程过程中如果有IO流,那我们一定要将资源进行关闭,最好在开始编写程序的时候就关闭流。
二、顺序结构
顺序结构是java一种最基本的结构,除非特别指明,否则一般是按照顺序执行的。
同时顺序结构也是最简单的一种算法结构。任何算法都离不开的一种结构。
三、选择结构
3.1 if选择结构
if 选择结构包含单选泽结构、双选择结构和多选择结构,如下所示:
//if单选择结构 /* 语法结构为: if(布尔表达式){ //如果布尔表达式是true执行的语句 } */ if(s.equals("1")){ System.out.println(s); } //if双选择结构 if(s>60){ System.out.println("及格"); } else { System.out.println("不及格"); } //if的多选择结构 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>0){ System.out.println("C级"); } else { System.out.println("成绩不合法"); }
3.2 switch多选择结构
多选择结构的另外一种方式就是Switch case 结构。在Switch case 中是判断一个值与多个变量之间的比较。每一个值成为一个分支。
具体结构根据如下所示:
我们输入学生的成绩,判断这个学生的成绩是A B C D 哪中情况。
char grade = 'A'; switch(grade){ case 'A': System.out.println("A"); break; case 'B': System.out.println("C"); break; case 'C': System.out.println("C"); break; default: System.out.println("输入不符合规范"); break; }
switch 语句中国的变量类型可以是:
byte、short、int、char
从JavaSE 7开始:switch 支持字符串String类型。
case 标签必须为字符串常量或者字面量。
我们写case语句的时候,每一个都要加上case,否则后面的也会被输出。
JDK7 的新特性,表达式结果可以是字符串!!!
字符的本质还是数字。
反编译---java----class(字节码文件)--反编译(IDEA)。
四、循环
4.1 while
while循环是最基本的循环,他的结构如下:
while(布尔表达式){ //循环内容 }
只要布尔表达式为true,循环就会一直执行下去。但是我们一般情况下是会让循环停止下来的,我们需要一个表达式让循环结束。
少部分情况需要循环一直执行,比如服务器的请求响应监听等。
循环的条件一直为true就会造成无限循环(死循环),一般情况我们要避免死循环。它会影响程序的性能或者让程序崩溃。
举例:1+2+3+4+5+6+... +100 int i=0; int sum=0; while(i<=100){ sum = sum+i; i++; } System.out.println(sum);
4.2 do ... while
对于while语句而言,如果不满足条件,则不能进入循环。但是有些情况下需要让程序至少执行一次。
do ... while循环和while循环相似,不同的是,do ... while循环至少会执行一次。
do{ //语句 }while(); while和do ... while的区别 2 while先判断后执行,dowhile是先执行后判断。 3 do ... while总是保证循环会至少执行一次,这是是主要差别
4.3 for循环
在循环中while和do...while几乎能实现所有的循环,但是在JAVA中有更加简单的一种循环,就是for循环。
for循环是一个有限次数的循环。可以知道程序执行多少次。是一种有效、灵活的循环结构。
具体循环结构如下:
for(初始条件;判断条件;变化方式){ //具体语句 }
我们可以看下以下几个小例子
1.计算0到100之间的奇数和偶数的和。
//使用while循环
int a=1; while(a<=1000){ //此处的条件判断应该先放值判断,再进行换行 if(a%5==0){ System.out.print(a+"\t"); } if(a%(3*5)==0){ System.out.print("\n"); } a++; } //使用for循环
int addSum = 0;//奇数 int evenSum = 0;//偶数 for(int i=0;i<=100;i++){ if(i%2!=0){ addSum += i; }else{ evenSum +=i; } } System.out.println("奇数和为"+addSum); System.out.println("偶数和为"+evenSum);
2.打印九九乘法表
//打印九九乘法表 /* 使用嵌套for循环,第一层的for循环是是行数的循环 第二层的for循环是列的循环。 打印第一行,最后的数字和行数是一样的 所以在第二行,我们直接使用行行数就可以啦! */ for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.print("\n"); }
3.打印1-1000以内能整除5的数字,并且打印3个数字之后换一行。
int a=1; while(a<=1000){ //此处的条件判断应该先放值判断,再进行换行 if(a%5==0){ System.out.print(a+"\t"); } if(a%(3*5)==0){ System.out.print("\n"); } a++; } // "\n" 转义字符表示换行 // "\t" 转义字符表示空格 //println 输出会换行 //print 输出不会换行
4.4 增强for循环
在java5 中引入了一种主要用于数组的增强for循环。
/* java5 中引入了一种主要用于数组或者集合的增强型for循环 增强for循环主要用于数组或者集合 具体语法格式如下: for(声明语句:表达式){ 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配 作用域限定在循环语句块,它的值和此时数组元素的值相等 表达式:表达式里是要访问的数组名,或者是返回值为数组的方法。 //代码语句 } */ public static void main(String[] args) { int[] numbers = {10,20,30,40,50}; for(int i=0;i<numbers.length;i++){ System.out.print(numbers[i]+"\t"); } System.out.println(); //遍历数组的元素 for(int x:numbers){ System.out.print(x+"\t"); } }
五、break、continue、return
break在任何循环的主体中,均可用于终止此次循环。
continue在循环中,用于终止某次循环过程。即跳过循环体中尚未执行的语句。接着执行下一次是否执行的判断。
return是用于跳出方法。
关于goto关键字
java中作为保留字。
六、小练习,打印三角形
//打印三角形 5行 /* 分析: 我们首先外层按照列打印,再打印行 (1)第一行前面是5个空格 (2)第一行打印一个*,第二行打印3个* (3)打印第一个内循环,先打印空格 打印第二个内循环,打印一半的* 打印第三个内循环,打印右侧的* */ public static void main(String[] args) { for(int i=5;i>0;i--){ for(int j=0;j<=i;j++){ System.out.print(" "); } for(int m=5;m>=i;m--){ System.out.print("*"); } for(int m=5;m>i;m--){ System.out.print("*"); } System.out.print("\n"); } }