Java学习--流程控制

用户交互Scanner

  • java.util.Scanner:Java通过Scanner类来获取用户输入
  • next():
    • 一定要读取到有效字符才可以结束
    • 遇到有效字符之前的空白,会自动去掉
    • 不能接收带有空格的字符串
    • 以空格作为结束符
//next方法接收    
public static void main(String[] args) {
    	//打开一个键盘接口取名为scanner
        Scanner scanner= new Scanner(System.in);
        System.out.println("使用next方式接收");
        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            String str=scanner.next();
            System.out.println("输入的内容为"+str);
        }
        //io流的类用完要关掉
        scanner.close();
    }
//输入 ‘hello world’
//输出‘hello’
  • nextline():
    • 以Enter作为结束符
    • 可以接受空格
//nextline方式接收
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextline方式接收");
        if(scanner.hasNextLine()){
            String str =scanner.nextLine();
            System.out.println("输入的内容为"+str);
        }
        //io流的类用完要关掉
        scanner.close();
    }
//输入 ‘hello world’
//输出‘hello world’
  • scanner 其他用法
//scanner.nextInt();
//scanner.nextFloat();    
    
		Scanner scanner = new Scanner(System.in);
        System.out.println("input int:");
        if(scanner.hasNextInt()){
            int i =scanner.nextInt();
            System.out.println("int :"+i);
        }else {
            System.out.println("the wrong type input");
        }

        if(scanner.hasNextFloat()){
            float f=scanner.nextFloat();
            System.out.println("Float:"+f);
        }
		//io流的类用完要关掉
        scanner.close();
		
//输入 30 31.2-》int :30
			  //Float:31.2
//30 31-》int :30
		//Float:31.0
//31.3 30.1-》the wrong type input
		    //Float:31.3
//31.2 30-》the wrong type input
          //Float:31.2

// 说明只有当例子中的i =scanner.nextInt():用i接收了scanner的io流中的Int型字段后,io才能流向下一个字段
// 证明了scanner是io流的类
  • 小活动
//输入多个数字,求总和以及平均数,每输入一个数字用回车确认,输入非数字结束输入并输出结果

float sum_input=0;
float mean_input=0;
int temp=0;
Scanner scanner= new Scanner(System.in);
while (true){
    if(scanner.hasNextFloat()){
        temp+=1;
        sum_input+=scanner.nextFloat();
    }
    else {
        System.out.println("sum="+sum_input);
        mean_input=sum_input/temp;
        System.out.println("mean="+mean_input);
        break;
    }
}
scanner.close();
//另一种编程方式
float sum_input=0;
float mean_input=0;
int temp=0;

Scanner scanner= new Scanner(System.in);
while (scanner.hasNextFloat()){
        temp+=1;
        sum_input+=scanner.nextFloat();
    	}
    
System.out.println("sum="+sum_input);
mean_input=sum_input/temp;
System.out.println("mean="+mean_input);

}
scanner.close();

流程结构

顺序结构

任何算法都离不开的结构

基础结构

System.out.println("h1");
System.out.println("h2");
System.out.println("h3");
System.out.println("h4");

选择结构

  • if
if (布尔表达式){
    //如果满足则执行这段代码
}
  • if - else
if (布尔表达式){
    //如果满足则执行这段代码
}else{
    //不满足执行这段
}
  • if- else if-else
 Scanner scanner = new Scanner(System.in);
 System.out.println("input:");
 String s=scanner.nextLine();
 if(s.endsWith("hello")){
     System.out.println(s);
 }else if(s.equals("rwl"))  {
     System.out.println("niubi");
 }else{
     System.out.println("nothing valid");
 } 
 scanner.close();
 }

switch多选择结构

  • 判断Expression是否为value,执行相应的语句

  • switch语句中的变量类型可以是:

    • byte、short、int、char、string
  • case标签必须为字符串常量或字面量

switch (Expression){
            case value:
                //语句
                //break;
            case value:
                //语句
                //break;
            default://可选
                //语句
        }
String  grade ;
Scanner scanner = new Scanner(System.in);
grade=scanner.nextLine();

switch (grade){
    case "A":
        System.out.println("GOOD");
        break;
    case "B":
        System.out.println("Middle");
        break;
    case "C":
        System.out.println("Bad Boy");
        break;
    default:
        System.out.println("keep studying!");
}

循环结构

  1. while循环(常用)
  • 知道布尔表达式为true,循环就会一直执行下去
  • 大多情况是循环达到某种目的后用break让循环结束
  • 少部分情况需要循环一直执行,如服务器监听
while(布尔表达式){
    //循环内容
}
int i=0;
while (i<100){
    i++;
    System.out.println(i);
}
  1. do while循环
int i=0;
do{
    i++;
    System.out.println(i);
}while (i<100);
  1. for循环(常用)
  • 最先执行初始化步骤
  • 检测布尔表达式的值(true->执行;false->跳出循环)
  • 执行循环内容
  • 更新值
  • 再次监测布尔表达式的值
for(初始化;布尔表达式;更新值){
    //循环内容
}
int a;
for(a=1;a<101;a++){
    System.out.println(a);
}
//快捷键100.for->
for (int i = 0; i < 100; i++) {

}
//死循环
for(;;){
    //循环内容
}
  • 小练习
//0-100的奇数和与偶数和
int sum_e;
int sum_o;
int i;
for (i = 0,sum_o=0,sum_e=0; i <= 100; i++) {
    if(i%2==1){
        sum_o=sum_o+i;
    }else {
        sum_e += i;
    }
}
System.out.println("sum_o="+sum_o);
System.out.println("sum_e="+sum_e);
//输出0-1000内可以被5整除的数,并每行输出三个
int i;
int temp;
for ( i = 0,temp=0; i < 1001; i++) {
    if (i%5==0){
        System.out.print(i+"\t");
        temp++;
        if(temp==3){
            System.out.println("");
            temp=0;
        }
    }

}
//九九乘法表
int i;
for(i=0;i<=9;i++){
    for(int j=1;j<=i;j++){
        System.out.print(i+"*"+j+"="+(i*j)+"\t");
    }
    System.out.println();
}
  • 增强for循环
int[] n={10,20,30,40};
for (int x:n){
    System.out.print(x+"\t");
}
  1. break/continue/goto

​ (每种语言break和continue都一样)

​ goto被java放弃了,我也从来都没用过

​ break:跳出这一层循环

​ continue:跳出这一次循环-》跳过这次(最深的一个循环)循环接下来的代码

  • 如果之前没学过其他语言,建议去C语言深入了解一下这个的用法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值