控制台输入及java中各种语句练习

控制台输入

	    //接收键盘输入
		Scanner sc=new Scanner(System.in);
     	String str=sc.next();
		int num =sc.nextInt();
		float f=sc.nextFloat();
		double d=sc.nextDouble();
		System.out.println(str+","+num+","+f+","+d);
		
		//接收键盘输入3个int的数,打印最大值,使用三元运算符实现
		 //法一
		System.out.println("input a1:");
		int a1=sc.nextInt();
		System.out.println("input a2:");
		int a2=sc.nextInt();
		System.out.println("input a3:");
		int a3=sc.nextInt();
		int b=a1>a2?a1:a2;
		int c=b<a3?a3:b;
		System.out.println("最大值:"+c);
        //法二
		int m=Math.max(a1, a2);
		m=Math.max(m, a3);
		System.out.println("最大值:"+m);

语句种类:

    赋值语句:x=9;
    方法调用语句:System.out.print("hello");
                 Math.max(5,6);
    import和package语句
    判断:if ,switch
    循环:for,while,do-while
    跳转语句:break,continue
  1. import语句:
    作用:导入类
    格式:import java.util.*;
    或import java.util.Scanner;
    位置:class上边,package下边
    数量:多个
  2. package:
    作用:管理类
    格式:package cn.tedu.demo;
    位置:第一条有效句
    数量:至多一条
  3. if语句有如下4种形式
    1.if(boolean){}
    2.if(boolean){} else{}
    3.if(boolean){} if(boolean){} …
    4.if(boolean){} else if(boolean){} … else{}

else子句不能单独使用

  1. switch(){}
    括号中的参数类型(byte,short,int,char)
    在jdk 1.7之后参数类型为 (byte,short,int,char,String,Enum),不能是 boolean 类型。
    switch 语句 的语法格式如下:
    case n:
        语句;
        break;
        //可有可无,如果有,跳出switch语句。没有,继续向下执行,和n无关。
    .........
    default:
         语句;  
   注: n不能相同;default的位置是随意的
    //以下结果为5,因为java代码是按顺序执行的
    int n=5;
	switch(n) {
	default:
		System.out.println("defult");
	case 5:
		System.out.println(5);
		break;
	case 1:
		System.out.println(1);
		break;			
	}       

在 case 标签后的每个代码块后都有一条 break;语句,如果把下面程序中的 break;语句都注释掉,将看到如下运行结果:

 5
 1

switch语句会拿表达式和 case 标签后的值进行比较, 一旦遇到相等的值,程序就开始执行这个 case 标签后的代码,不再判断与后面 case、 default 标签的条件是否匹配,除非遇到 break; 才会结束。

练习题

	1.接受键盘输入,如果为偶数打印输出
	Scanner sc=new Scanner(System.in);
	System.out.println("input num:");
	int num=sc.nextInt();
	if(num%2==0) {
		System.out.println("偶数:"+num);
	}
    
    2.输入一个数字表示重量,
      如果重量<=20,则每千克收费0.35元;
      如果超过20千克不超过100千克的范围,则超过的部分按照每千克0.5元收费;
      如果超过100千克,则超过的范围按照每千克0.8元收费。
      计算输入的重量对应的总费用.
	System.out.println("输入重量:");
	int weight=sc.nextInt();
	if(weight<=20) {
		System.out.println(weight*0.35);
	}
	else if(weight>20 && weight<100) {
		System.out.println(20*0.35+0.5*(weight-20));
	}
	else {
		System.out.println(20*0.35+0.5*80+0.8*(weight-100));
	}
	
  3.控制台输入年和月,输出该年该月有多少天(year%4==0&&year%100!=0||year%400==0闰年判断条件)
    System.out.println("输入年份:");
	int year=sc.nextInt();
	System.out.println("输入月份:");
	int month=sc.nextInt();
	switch(month) {
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		System.out.println("31天");
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		System.out.println("30天");
		break;
	case 2:
		if(year%4==0 && year%100!=0||year%4==0) {
			System.out.println("29天");
		}
		else {
			System.out.println("28天");
		}
		
	}

  4.控制台输入两个整数和运算符,输出结果
    System.out.println("input a1:");
	int a1=sc.nextInt();
	System.out.println("input a2:");
	int a2=sc.nextInt();
	System.out.println("input:");
	String str=sc.next();
	switch(str) {
	case "+":
		System.out.println(a1+a2);
		break;
	case "-":
		System.out.println(a1-a2);
		break;
	}

循环结构

    for 循环的基本语法格式如下:
    for(表达式1;表达式2;表达式3){
         语句体;
    }
    循环原理:
    表达式1完成初始化,表达式2判断条件,如果为true,执行语句体;表达式3(步长);执行表达式2,直到判断条件为false,跳出循环体
    //省略了 for 循环三个部分,循环条件将一直为 true
    for(;;)      //正确的
    while 循环的语法格式如下:
    while(boolean){
    循环体;
    }
    
    do while 循环的语法格式如下:
    do{
    循环体;
    }while(boolean);
    do-while至少执行一次循环体

循环语句练习题

  /**1.求1-100以内所有的奇数的和----i=1;i+=2;
		 * 
		 */
	public static void test1() {
		int sum=0;
		for(int i=1;i<=100;i+=2) {
			sum+=i;
		}
		System.out.println(sum);
	}
	
	/**2.打印100以内能被3整除而不能被7整除的数字---先获取3的倍数
		 * 
		 */	
	public static void test2() {
		
		for(int i=1;i<=100;i++) {
			if(i%3==0&&i%7!=0) {
				System.out.println(i);
			}
		}
	}
	
	/**3.输入一个数字,输出这个数字是一个几位数
		 * 
		 */
	public static void test3() {
		
		Scanner sc=new Scanner(System.in);
		System.out.println("input num:");
		int num =sc.nextInt();
		int count=1;
		while(num>=10) {
			num=num/10;
		    count++;
		}
		System.out.println(num+"的位数:"+count);
	}
	
	/**4.输入一个数字,输出这个数子的所有因数
		 * 
		 */
	public static void test4() {
		
		Scanner sc=new Scanner(System.in);
		System.out.println("input a:");
		int a =sc.nextInt();
		for(int i=1;i<=a;i++) {
			if(a%i==0) {
				System.out.println(i);
			}
		}
	}

嵌套循环

各种类型的循环都可以作为外层循环,也可以作为内层循环。 下面是一个嵌套循环的示例代码。

for(int i=1;i<=10;i++){
     for(int j=1;j<=5;j++){
          System.out.println("*");
     }
}

循环原理:外层执行一次,内层执行全部
练习一:
在这里插入图片描述

        for(int i=1;i<=5;i++){
			for(int j=1;j<=6;j++){
				System.out.print("*");
			}
			System.out.println();
		}

练习二:
在这里插入图片描述

        for(int i=1;i<=5;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}

练习: 九九乘法表

        for(int i=1;i<=9;i++){
			for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i+"="+i*j+" ");
			}
			System.out.println();
		}

控制循环结构

break:可用于switch和循环体
      表示跳出循环体(switch语句体)
      break语句后的代码永远不能执行
      一旦在循环体中遇到 break,系统将完全结束该循环,开始执行循环之后的代码。 
void f(){
    int x=5;
    if(x==5){
       break;
    }
}
//error,因为break用于循环语句
 void m() {
    	for(;;) {
    			if(true)  
    				break;
    				System.out.print("*");		
    	}
 }
 //结果为空白,*未输出,因为break语句后的代码永远不能执行
   

break 语句不仅可以结束其所在的循环, 还可以直接结束其外层循环。 此时需要在 break 后紧跟一 个标签,这个标签用于标识一个外层循环。 Java 中的标签就是一个紧跟着英文冒号(:)的标识符。

// 外层循环, out 作为标识符 
out:for(int i=1;i<=5;i++){
			for(int j=1;j<=4;j++){
				if(j==2) {
				    // 跳出 out 标签所标识的循环 
					break out;
				}
				System.out.print(j+"\t");
			}
			System.out.println();
}

程序遇到一个 break out;语句,这行代码将会导致结束 out 标签指定的循环,不是结束 break 所在的循环, 而是结束 break 循环的外层循环。

continue:可以用于循环体中
          表示结束本次循环,开始新一次循环
          语句后的代码永远不能执行
 for(int j=1;j<=10;j++){
                if(j%2==0){
                continue;
                //System.out.print("hello");      此句error
                }
				System.out.print(j);
 }
//结果为1 3 5 7 9

return :并不是专门用于结束循环的,是结束一个方法。 
        当一个方法执行到一个return语句时,这个方法将被结束。例如下面程序。
 //一个简单的 for 循环 
 for (int i = 0 ; i < 3 ; i++ ) 
 {
     System . out.print1n( " i的值是" + i);
     if (i == 1) 
     {
     return; 
     }
     System . out . println( " return 后的输出语句n" ); 
 }

运行上面程序,循环只能执行到 i 等于 1 时, 当 i 等于 1 时程序将完全结束(当 main 方法结束时,也就是 Java 程序结束时)。与 continue 和 break 不同的是, return 直接结束整个方法, 不管这个return处于多少层循环之内 。

练习题

1.输出2-1000,所有的质数(素数)

//质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
//结果为2,3,5,7.....
		int i,j;
		for(i=2;i<=1000;i++) {
			for(j=2;j<i;j++) {
				if(i%j==0) {
					break;
				}
			}
			if(j>i/2) {
				System.out.print(i+"\t");
			}
		}

2.求4个阶乘的和 4!+3!+2!+1

        int sum=0;
		for(int i=4;i>=1;i--) {
			int a=1;
			for(int j=i;j>=1;j--) {
				a*=j;
			}
			sum+=a;
		}
		System.out.print(sum);
		//结果为33

3.百钱百鸡 — 3文钱1只公鸡,2文钱1只母鸡,1文钱3只小鸡;
100文钱如何买恰好100只鸡?

— 先定义一个循环表示公鸡,嵌套一个循环表示母鸡,计算小鸡的个数,
根据各种鸡的个数来计算钱数是否为100

        for(int x=1;x<=33;x++) {
			for(int y=1;y<=50;y++) {
				int z=100-x-y;
					if(z%3==0&&3*x+2*y+z*1/3==100) {
						System.out.print("公鸡"+x+"只,母鸡"+y+"只,小鸡"+z+"只"+"\n");
					}
			}
		}

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值