Java流程控制
用户交互scanner
顺序结构
选择结构
循环结构
break&continue
练习
用户交互Scanner
我们可以通过Java的包获取用户的输入
import java.until.Scanner;
基本语法
Scanner s = new Scanner(Sysrem.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNextLine()判断是否还需要输入的数据
import java.until.Scanner;
public class demo{
public static void main(String[] arges){
//从键盘接收数据
Scanner scanner = new Scanner(System.in);//重要
System.out.println("使用nextLine方式接受:");
/*可以去掉
//判断是否还有输入
if (scanner.hasNextLine()){
*/
//等待用户去输入,重要
String str = scanner.nextLine();//String 与 Line对应
System.out.println("输出的内容为: "+str);
}
scanner.close();
}
}
next():
一定要读取到有效字符后才可以结束输入
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
只有输入有效字符后才将其后面输入的空包作为分隔符或者结束符
next()不能带到有空格的字符串
nextLine():
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
可以获得空白
顺序结构
顺序结构是最最简单的算法结构
他是任何一个算法都离不开的结构
选择结构
if单选择结构
if双选择结构
if多选择结构
嵌套的if结构
switch的选择结构
if单选择结构
语法:
if (条件语句){
执行语句
}
例如:
if(scan.equals("比对")){
//equals 是比对字符串是否一致
}
if双选择结构
语法:
if(条件语句){
执行语句
}else{
执行语句
}
if多选择结构
语法:
if(条件语句){
执行语句
}else if(条件语句){
执行语句
}else if(条件语句){
执行语句
}else {
执行语句
}
if嵌套结构
语法:
if(条件语句1){
if(条件语句1){
}
}
switch多选择结构
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
switch(条件语句){
case value:
执行语句;
break;(可选)
case value:
执行语句;
break;
case value:
执行语句;
break;
case value:
执行语句;
break;
default:(可选)
执行语句
}
switch语句中的变量类型可以是:
byte、short、int或者char
从Java SE7考试
switch支持字符串String类型了
同时case标签必须为字符串常量或者字面量
case穿透:
当没有break时,下面的选项都会输出
循环结构
while循环
do...while循环
for循环
在Java5中引入了亿中主要用于数组的增强型for循环
while循环
语法:
while(表达式){
循环内容
}
do...while
语法:
do{
执行语句
}while(条件语句)
while先判断后执行,dowhile是先执行后判断
dowhile总是保证循环体被至少执行一次
for循环
语法:
for(初始化;条件语句;更新){
执行语句
}
计算奇数和偶数的和:
package xunhuan;
public class ForXunHuan {
public static void main(String[] args) {
int i = 0;
int Osum = 0;
int Jsum = 0;
for (i=0;i<=100;i=i+2){
Osum = Osum + i;
}
System.out.println(Osum);
for (i=1;i<100;i=i+2){
Jsum = Jsum + i;
}
System.out.println(Jsum);
}
}
/**
* 第二种方法
* for(i=0;i<=100;i++){
* if(i%2!=0){
* //奇数
* Jsum = Jsum + i;
*
* }else{
* Osum = Osum + i;
*
* }
* System.out.println(Jsum);
* System.out.println(Osum);
* }
*/
用while或者for循环计算出1-1000内能被5整除每行输出三个:
for (int i=0;i<=1000;i++){
if(i%5==0){
System.out.print(i + "\t");
}
if(i%(5*3)==0){
System.out.println();
}
}
打印99乘法表:
int sum = 0;
int x = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
sum = i * j;
System.out.print(j + "*" + i + "=" + sum + "\t");
}
System.out.println();
}
先打印第一列
固定的列再用循环包起来
去掉重复项 ,i<=j
调整样式
增强型for循环
主要用来遍历数组和集合对象
语法:
for(声明语句:表达式){
执行语句
}
例子:
package xunhuan;
public class UpForXunHuan {
public static void main(String[] args) {
int[] numbers = {10,20,30,40,50};//定义一个数组
//遍历数组的元素
for(int x:numbers){
System.out.println(x);
}
}
}
break 和 continue
break用于强行退出循环
break只是跳出循环不是终止程序
continue用在循环语句体中,用于终止某次循环过程,即跳过循环体中稍微执行的语句,接着进行下一次循环
练习
打印5行的三角形
package xunhuan;
public class TestXunHuan {
public static void main(String[] args) {
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
System.out.print("*");
}
System.out.println();
}
}
}