当前位置:   article > 正文

Java第五章_scanner myscanner = new scanner(system.in);

scanner myscanner = new scanner(system.in);

程序流程控制(三大流程控制语句)

  1. 顺序控制(程序从上到下执行,中间没有任何判断和跳转,java中定义bian时采用合法的前向引用
  2. 分支控制(让程序有选择的执行)
    1. //if的快速入门,单分支
    2. import java.util.Scanner;
    3. public class if01{
    4. //编写一个main方法
    5. public static void main(String[] args){
    6. Scanner myScanner = new Scanner(System.in);
    7. System.out.println("请输入年龄");
    8. int age = myScanner.nextInt();
    9. if( age > 18){
    10. System.out.println("你年龄大于18,要对自己的行为负责,否则送进监狱");
    11. }
    12. System.out.println("程序继续...");
    13. }
    14. }
    1. //if的快速入门,双分支
    2. import java.util.Scanner;
    3. public class if01{
    4. //编写一个main方法
    5. public static void main(String[] args){
    6. Scanner myScanner = new Scanner(System.in);
    7. System.out.println("请输入年龄");
    8. int age = myScanner.nextInt();
    9. if( age > 18){
    10. System.out.println("你年龄大于18,要对自己的行为负责,否则送进监狱");
    11. }else{
    12. System.out.println("你的年龄不大这次放过你了");
    13. }
    14. System.out.println("程序继续...");
    15. }
    16. }
    1. public class if02
    2. {
    3. //编写一个main方法
    4. public static void main(String[] args)
    5. {
    6. int num1 = 10;
    7. int num2 = 5;
    8. int sum = num1 + num2;
    9. if( sum % 3 == 0 && sum % 5 == 0)
    10. {
    11. System.out.println("和可以被3和5整除");
    12. }else{
    13. System.out.println("和不能被3和5整除");
    14. }
    15. }
    16. }
    1. import java.util.Scanner;//引入一个扫描器类
    2. public class if02
    3. {
    4. //编写一个main方法
    5. public static void main(String[] args)
    6. {
    7. Scanner myScanner = new Scanner(System.in);
    8. System.out.println("请输入芝麻信用分(1-100)");//提示用户输入
    9. int score = myScanner.nextInt();//接收用户输入
    10. if(score >=1 && score <= 100){
    11. //因为有4种情况使用多分支
    12. if( score==100){
    13. System.out.println("信用极好");
    14. }else if( score > 80 && score <= 99){
    15. System.out.println("信用优秀");
    16. }else if( score >= 60 && score <= 80){
    17. System.out.println("信用一般");
    18. }else{
    19. System.out.println("信用不及格");
    20. }
    21. }else{
    22. System.out.println("信用分需要在1-100,请重新输入:)");
    23. }
    24. }
    25. }

    嵌套分支:在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。不过最好不要超过3层(可读性不好)

    1. import java.util.Scanner;//引入一个扫描器类
    2. public class if02
    3. {
    4. //编写一个main方法
    5. public static void main(String[] args)
    6. {
    7. Scanner myScanner = new Scanner(System.in);//创建一个Scanner对象,接收用户输入
    8. System.out.println("请输入该歌手成绩");//提示用户输入
    9. double score = myScanner.nextDouble();//接收用户输入
    10. if(score >8.0){
    11. System.out.println("恭喜你!!进入决赛:)");
    12. System.out.println("请输入性别");
    13. char gender = myScanner.next().charAt(0);//键盘接收字符串的第一个字符
    14. if(gender=='女'){
    15. System.out.println("进入女子组");
    16. }
    17. else if(gender=='男'){
    18. System.out.println("进入男子组");
    19. }
    20. else{
    21. System.out.println("你的性别有误,不能参加决赛~");
    22. }
    23. }else{
    24. System.out.println("你被淘汰了");
    25. }
    26. }
    27. }
    1. import java.util.Scanner;//引入一个扫描器类
    2. public class if02
    3. {
    4. //编写一个main方法
    5. public static void main(String[] args)
    6. {
    7. Scanner myScanner = new Scanner(System.in);//创建一个Scanner对象,接收用户输入
    8. System.out.println("您想几月份去游玩^_^?");//提示用户输入
    9. double month = myScanner.nextDouble();//接收用户输入
    10. if(month >=4 && month <= 10){
    11. System.out.println("请输入年龄");
    12. int age = myScanner.nextInt();//接收用户输入
    13. if(age >= 18 && age <= 60){
    14. System.out.println("成年人60元");
    15. }
    16. else if(age < 18){
    17. System.out.println("儿童半价");
    18. }
    19. else{
    20. System.out.println("1/3的票价");
    21. }
    22. }else{
    23. System.out.println("请输入年龄");
    24. int age = myScanner.nextInt();//接收用户输入
    25. if(age >= 18){
    26. System.out.println("成年人40元");
    27. }else{
    28. System.out.println("20元");
    29. }
    30. }
    31. }
    32. }

    switch分支结构的细节:1.表达式数据类型,应和case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int。  2.switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum【枚举】,string。即只能为这些类型,不能是double等) 3.case子句中的值必须是常量,而不能是变量   4.default子句是可选的,当没有匹配的case时,执行default   5.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break

    1. import java.util.Scanner;
    2. public class switch01{
    3. //编写一个main方法
    4. public static void main(String[] args){
    5. Scanner myScanner = new Scanner(System.in);
    6. System.out.println("请输入一个字符(a-e)");
    7. char c1 = myScanner.next().charAt(0);
    8. //在java中,只要是有值返回,就是一个表达式
    9. switch(c1){
    10. case 'a' :
    11. System.out.println("A");
    12. break;
    13. case 'b' :
    14. System.out.println("B");
    15. break;
    16. case 'c' :
    17. System.out.println("C");
    18. break;
    19. case 'd' :
    20. System.out.println("D");
    21. break;
    22. case 'e' :
    23. System.out.println("E");
    24. break;
    25. default:
    26. System.out.println("你输入的字符不正确,没有匹配度");
    27. }
    28. System.out.println("退出了swich,继续执行程序");
    29. }
    30. }
    1. import java.util.Scanner;
    2. public class switch01{
    3. //编写一个main方法
    4. public static void main(String[] args){
    5. Scanner myScanner = new Scanner(System.in);
    6. System.out.println("请输入一个分数");
    7. int score = myScanner.nextInt();
    8. //在java中,只要是有值返回,就是一个表达式
    9. if(score >= 0 && score <= 100){
    10. switch((int)score/60){
    11. case 0 :
    12. System.out.println("不合格");
    13. break;
    14. case 1 :
    15. System.out.println("合格");
    16. break;
    17. }
    18. }else{
    19. System.out.println("请重新输入");
    20. }
    21. }
    22. }
    1. import java.util.Scanner;
    2. public class switch01{
    3. //编写一个main方法
    4. public static void main(String[] args){
    5. Scanner myScanner = new Scanner(System.in);
    6. System.out.println("请输入一个月份");
    7. int month = myScanner.nextInt();
    8. //在java中,只要是有值返回,就是一个表达式
    9. if(month > 0){
    10. switch(month){
    11. case 3 :
    12. case 4 :
    13. case 5 :
    14. System.out.println("春季");
    15. break;
    16. case 6 :
    17. case 7 :
    18. case 8 :
    19. System.out.println("夏季");
    20. break;
    21. case 9 :
    22. case 10 :
    23. case 11 :
    24. System.out.println("春季");
    25. break;
    26. case 12 :
    27. case 1 :
    28. case 2 :
    29. System.out.println("春季");
    30. break;
    31. }
    32. }else{
    33. System.out.println("请重新输入");
    34. }
    35. }
    36. }

    switch和if的比较:1.如果判断的具体数值不多,而且符合byte、short、int、char,enum【枚举】,string这6种类型,最好使用switch。2.对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广

  3. 循环控制
    1. public class forexercise{
    2. public static void main(String[] args){
    3. int n = 5;
    4. for(int i = 0 ; i <= n ; i++ ){
    5. System.out.println(i + "+" + (n-i) + "=n" );
    6. }
    7. }
    8. }
    1. public class while01{
    2. public static void main(String[] args){
    3. int i = 1;
    4. int endnum = 100;
    5. while(i <= 100){
    6. if(i%3 == 0){
    7. System.out.println(i);
    8. }
    9. i++;//变量自增
    10. }
    11. System.out.println("退出while,继续");
    12. }
    13. }
    1. public class while01{
    2. public static void main(String[] args){
    3. int i = 40;
    4. while(i <= 200){
    5. if(i%2 == 0){
    6. System.out.println(i);
    7. }
    8. i++;//循环变量的迭代
    9. }
    10. System.out.println("退出while,继续");
    11. }
    12. }

    do while循环控制

    1. import java.util.Scanner;
    2. public class dowhile{
    3. public static void main(String[] args){
    4. Scanner myScanner = new Scanner(System.in);
    5. char answer = ' ';
    6. do{
    7. System.out.println("老韩使出五连鞭");
    8. System.out.println("老韩问:还钱吗?y/n");
    9. answer = myScanner.next().charAt(0);
    10. System.out.println("他的回答是" + answer);
    11. }while(answer != 'y');//判断条件
    12. System.out.println("李三还钱了!!");
    13. }
    14. }

    多重循环控制(难点,重点

    1. public class mulfor{
    2. public static void main(String[] args){
    3. for(int i = 0; i < 2 ; i++){
    4. for( int j = 0; j < 3; j++){
    5. System.out.println("i=" + i + "j=" + j);
    6. }
    7. }
    8. }
    9. }
    1. import java.util.Scanner;
    2. public class mulfor{
    3. public static void main(String[] args){
    4. Scanner myScanner = new Scanner(System.in);//创建Scanner对象
    5. double totalScore = 0;//累计所有学生的成绩
    6. int passNum = 0;//累积及格的人数
    7. int classNum = 3;//班级个数
    8. int stuNum = 5;//学生人数
    9. for(int i = 1; i <= classNum ; i++){//i表示班级
    10. double sum = 0;//一个班级的总分
    11. for( int j = 1; j <= stuNum; j++){//j表示学生
    12. System.out.println("请输第" + i +"个班的第" + j + "个学生的成绩");
    13. double score = myScanner.nextDouble();
    14. if(score >= 60){//当一个学生成绩>=60,passNum++
    15. passNum++;
    16. }
    17. sum += score;//累计学生的成绩
    18. System.out.println("成绩为" + score);
    19. }
    20. System.out.println("sum=" + sum + "平均分=" + (sum / stuNum));
    21. totalScore += sum;//所有班级学生成绩的总分
    22. }
    23. System.out.println("3个班总分=" + totalScore + "平均分=" + (totalScore / stuNum));
    24. System.out.println("及格人数有" + passNum + "人");
    25. }
    26. }
    1. //99乘法表
    2. public class mulfor{
    3. public static void main(String[] args){
    4. int i;
    5. int row = 9;
    6. int j;
    7. int mul;
    8. for( i = 1 ; i <= row ; i++){
    9. for( j = 1 ; j <=i ; j++){
    10. mul = i * j;
    11. System.out.print(j + "*" + i + "=" + mul + '\t');
    12. }
    13. System.out.print('\n');
    14. }
    15. }
    16. }
    1. //打印一个空心金字塔
    2. public class mulfor{
    3. public static void main(String[] args){
    4. int i;
    5. int row = 10;
    6. int j;
    7. int k;
    8. for( i = 1 ; i <= row ; i++){
    9. for( k = 1 ; k <= row - i ; k++){
    10. System.out.print( " " );
    11. }
    12. for( j = 1 ; j <= 2 * i - 1 ; j++){
    13. if(j == 1 || j == 2 * i - 1 || i == row){
    14. System.out.print( "*" );
    15. }else{
    16. System.out.print( " " );
    17. }
    18. }
    19. System.out.print('\n');
    20. }
    21. }
    22. }
    1. //打出一个空心菱形
    2. import java.util.Scanner;
    3. public class mulfor{
    4. public static void main(String[] args){
    5. Scanner myScanner = new Scanner(System.in);//创建Scanner对象
    6. int i;
    7. int j;
    8. int k;
    9. int row;
    10. System.out.println("请输入row(row>2)");
    11. int row = myScanner.nextInt();
    12. for( i = 1 ; i <= row ; i++){
    13. for( k = 1 ; k <= row - i ; k++){
    14. System.out.print( " " );
    15. }
    16. for( j = 1 ; j <= 2 * i - 1 ; j++){
    17. if(j == 1 || j == 2 * i - 1 ){
    18. System.out.print( "*" );
    19. }else{
    20. System.out.print( " " );
    21. }
    22. }
    23. System.out.print('\n');
    24. }
    25. for( i = 1 ; i <= row - 1 ; i++){
    26. for( k = 1 ; k <= i ; k++){
    27. System.out.print( " " );
    28. }
    29. for( j = 1 ; j <= (2 * row - 1 ) - 2 * i ; j++){
    30. if(j == 1 || j == (2 * row - 1 ) - 2 * i ){
    31. System.out.print( "*" );
    32. }else{
    33. System.out.print( " " );
    34. }
    35. }
    36. System.out.print('\n');
    37. }
    38. }
    39. }

    跳转控制语句-break注意事项和细节说明:1.break语句出现在多层嵌套的语句中时,可以通过标签指明要终止的是哪一层语句块BreakDetail.java  2.标签的基本使用

     a.break语句可以指定退出哪一层  b.label1是标签,由程序员指定,也可叫别的名称,比如:abc  c.break后指定到哪个label就退出到哪里  d.在实际开发中尽量不使用标签(可读性会变差)  e.如果没有指定break,默认退出最近的循环体

    1. public class break01{
    2. public static void main(String[] args){
    3. int sum = 0;//累积和
    4. int n = 0;//记录i,起到了扩大i作用域的功能
    5. for( int i = 1; i < 100;i++){
    6. sum += i;//累积
    7. if( sum > 20){
    8. n = i;//将i的值赋给n
    9. break;
    10. }
    11. }
    12. System.out.println("和>20的时候,当前数i=" + n);
    13. }
    14. }
    1. import java.util.Scanner;//引入包
    2. public class break02{
    3. public static void main(String[] args){//编写一个main方法
    4. //实现登录验证,有3次机会,如果用户名为"丁真",密码"666"提示登陆成功
    5. //否则提示还有几次机会,请使用for+break完成
    6. //
    7. //思路分析
    8. //1.创建Scanner对象接收用户输入
    9. //2.定义String name;String passwd;保存用户名和密码
    10. //3.循环3次【登录3次】,如果满足条件就提前退出
    11. //4.定义一般变量int chance记录还有几次登录机会
    12. Scanner myScanner = new Scanner(System.in);//1.创建Scanner对象接收用户输入
    13. String name = "";
    14. String passwd = "";
    15. int chance = 3;//登陆一次就少一次
    16. for(int i = 1;i <= 3; i++){
    17. System.out.println("请输入名字");
    18. name = myScanner.next();
    19. System.out.println("请输入密码");
    20. passwd = myScanner.next();
    21. //比较输入的名字和密码是否正确
    22. //补充说明字符串的内容比较使用的方法时equals
    23. if("丁真".equals(name) && "666".equals(passwd)){
    24. System.out.println("恭喜你!登陆成功!");
    25. break;
    26. }
    27. chance--;
    28. System.out.println("你还有" + chance + "登录机会");
    29. }
    30. }
    31. }

    return的使用说明:当return用在方法时,表示跳出方法,如果使用在main,表示退出main程序,break则是跳出当前循环,continue是继续执行下一次循环

本文记录java学习过程中的笔记,如发现有错误,欢迎批评指正。大家有好的学习方法也可以发出来!!!

学习地址:【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili

给大家推荐一款好用的截图软件:【爱折腾Michael】Snipaste 史上最强大截图软件截图神器 最好用截图却也是最不正紧的截图软件 使用技巧讲解_哔哩哔哩_bilibili

免费在线画图,无需注册:未命名绘图.iodraw - iodraw.com未命名绘图.iodraw - iodraw.com未命名绘图.iodraw - iodraw.com

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/207184?site
推荐阅读
相关标签
  

闽ICP备14008679号