我是靠谱客的博主 炙热故事,最近开发中收集的这篇文章主要介绍实例详解Java基础的控制语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于控制语句的相关问题,包括了选择语句、循环语句、转向语句等相关内容,下面一起来看一下,希望对大家有帮助。

推荐学习:《java视频教程》

1.分类

怎么接收用户键盘输入

控制语句分类

2.语句详解

选择语句if、switch

if语句

注意事项

实例分析

public class Test01{
	public static void main(String[] args){
//1.本身就是布尔类型
		boolean sex  = true;
		if(sex){//sex == true也可以
			System.out.println('男');
		}
		else{
			System.out.println('女');
		}
//2.也可以用三目运算符
		char str = sex?'男':'女';
		System.out.println(str);
//3.一种特殊情况
		if(sex = true){//赋值运算符,也可以编译通过,永远只执行if语句
			System.out.println('男');
		}
		else{
			System.out.println('女');
		}

	}
}
登录后复制
//1.本身不是布尔类型
		int i = 100;
		if(i == 100){
			System.out.println(true);
		}
		else{
			System.out.println(false);
		}
//2.else缺少if
		if(sex)
			System.out.println('男');
			System.out.println("Hello wprld");//合乎语法的
		else //这一行报错,因为else缺少if
			System.out.println('女');
    //上面等价于
        if(sex){
			System.out.println('男');
           }
			System.out.println("Hello wprld");
		else 
			System.out.println('女');
登录后复制

例3

public class Test02{
	public static void main(String[] args){
		//从键盘接收数据
		System.out.print("请输入你的年龄:");
		java.util.Scanner s = new java.util.Scanner(System.in);
		int age = s.nextInt();
//1.方法1
		if(age<0 || age >150){
			System.out.println("年龄不合法");
		}else if(age <= 5){
			System.out.println("婴幼儿");
		}else if(age <= 10){
			System.out.println("少儿");
		}else if(age <= 18){
			System.out.println("少年");
		}else if(age <= 35){
			System.out.println("青年");
		}else if(age <= 55){
			System.out.println("中年");
		}else{
			System.out.println("老年");
		}

//2.方法2代码改良
		String str = "老年";
		if(age<0 || age >150){
			System.out.println("年龄不合法");
			return;//不合理就跳出循环,防止后面在打印
		}else if(age <= 5){
			str = "婴幼儿";
		}else if(age <= 10){
			str = "少儿";
		}else if(age <= 18){
			str = "少年";
		}else if(age <= 35){
			str = "青年";
		}else if(age <= 55){
			str = "中年";
		}
		System.out.println(str);//最后公用一个打印;因为每次只能打印一个
	}
}
登录后复制
public class Test03{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		System.out.print("请输入你的成绩:");
		double grade = s.nextDouble();
		String str = "优";

		if(grade <0 || grade >100){
			System.out.println("分数不合法");
			return; //不合理就跳出循环,防止后面在打印
		}else if(grade<60){
			str = "不及格";
		}else if(grade < 70){
			str = "及格";
		}else if(grade < 80){
			str = "中";
		}else if(grade < 90){
			str = "良";
		}
		System.out.println(str);//最后公用一个打印;因为每次只能打印一个
	}
}
登录后复制

例5

public class Test04{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		System.out.print("请输入天气,1表示雨天,0表示晴天:");
		int weather = s.nextInt();
		System.out.print("请输入性别,1表示男,0表示女:");
		int sex = s.nextInt();

		if(weather == 1){
			if(sex == 1){
				System.out.println("打一把大黑伞");
			}else{
				System.out.println("打一把小花伞");
			}
		
		}else{
			if(sex == 1){
				System.out.println("直接走起,出去玩耍");
			}else{
				System.out.println("擦点防晒霜,出去玩耍");
			}
		}
	}
}
登录后复制

switch语句

 switch(值){
            case 值1:
                java语句;
                java语句;...
                break;
            case 值2:
                java语句;
                java语句;...
                break;
            case 值3:
                java语句;
                java语句;...
                break;
            default:
                java语句;
            }
登录后复制

实例分析

public class Test05{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		System.out.print("请输入[0-6]的天数:");
		int day = s.nextInt();
		switch(day){
		case 0:
			System.out.println("星期日");
			break;
		case 1:
			System.out.println("星期一");
			break;
		case 2:
			System.out.println("星期二");
			break;
		case 3:
			System.out.println("星期三");
			break;
		case 4:
			System.out.println("星期四");
			break;
		case 5:
			System.out.println("星期五");
			break;
		case 6:
			System.out.println("星期六");
			break;
		default:
			System.out.println("选择错误");
			break;
		}
		
	}
}
登录后复制
public class SwitchTest02{
	public static void main(String[] args){
		//提示用户输入学生成绩
		java.util.Scanner s = new java.util.Scanner(System.in);
		System.out.print("请输入学生成绩:");
		double score = s.nextDouble();
		//System.out.println(score);
		if(score < 0 || score > 100){
			System.out.println("您输入的学生成绩不合法,再见!");
			return; 
		}

		// 程序能够执行到这里说明成绩一定是合法的。
		// grade的值可能是:0 1 2 3 4 5 6 7 8 9 10
		// 0 1 2 3 4 5 不及格
		// 6 及格
		// 7 中
		// 8 良
		// 9 10 优
		
		int grade = (int)(score / 10); // 95.5/10结果9.55,强转为int结果是9
		String str = "不及格";
		switch(grade){
		case 10: case 9:
			str = "优";
			break;
		case 8: 
			str = "良";
			break;
		case 7:
			str = "中";
			break;
		case 6:
			str = "及格";
		}
		System.out.println("该学生的成绩等级为:" + str);
	}
}
登录后复制

循环语句while、do...while、for

for循环

例1

public class ForTest02{
	public static void main(String[] args){
//1. 最简练的for循环
      //初始化表达式、条件表达式、更新表达式 其实都不是必须的!!!
		for(;;){
			System.out.println("死循环");
		}

//2.最常见的for循环
		for(int i = 0;i < 10;i++){
			System.out.println("i = " + i); // 0 1 2 3....9
		} 
		System.out.println(i);//错误: 找不到符号,i的范围只在for循环内

//3.i变量的作用域就扩大了。
		int i = 0;
		for(;i < 10;i++){
			System.out.println("i --> " + i); // 0 1 2 3....9
		}
		System.out.println("i = " + i); //10,这里的i就可以访问了

//4.变形
		for(int k = 1; k <= 10; ){
			System.out.println("k --> " + k); 
			k++;// 1 2 3 4 5 6 7 8 9 10 
		}
//5.变形
		for(int k = 1; k <= 10; ){
			k++;
			System.out.println("value --> " + k); // 2 3 4 5 6 7 8 9 10 11
		}

	}
}
登录后复制

例2

public class ForTest03{
	public static void main(String[] args){
//1. for的其它形式
		for(int i = 10; i > 0; i--){
			System.out.println("i = " + i); // 10 9 8 7 6 5 4 3 2 1
		}
//2. 变形
		for(int i = 0; i < 10; i += 2){
			System.out.println("value1 = " + i); // 0 2 4 6 8 
		}

//3. 死循环	
		for(int i = 100; i > 0; i %= 3){
			System.out.println("value2 = " + i); // 100 1 1... 1
		}

	}
}
登录后复制

例3:求1-100所得奇数和

public class Test07{
	public static void main(String[] args){
		int i = 0;
		int sum = 0;
		for(i=1;i<=100;i+=2){
			sum+=i;
		}
		System.out.println("sum = "+sum);//2500
	}
}
登录后复制

例4:嵌套循环

public class Test08{
	public static void main(String[] args){
//1.注意初始化放里面
	for(int i =0;i< 2;i++){
		for(int j=0;j<10;j++){
		   System.out.print(j+" ");
	   }
		System.out.println();
	}//打印两行0-9的数字
//2.初始化放外面
    int n = 0;
	for(int m = 0;m<2;m++){
		for(;n<10;n++){
			System.out.print(n+" ");
		}
		System.out.println();
	}//打印一行0-9的数字
 }
	
}
登录后复制

例5:九九乘法表

public class Test09{
	public static void main(String[] args){
		for(int i=1;i<=9;i++){
			for(int j=1;j<=i;j++){
				System.out.print(j+"*"+i + "=" +i*j+"  ");
			}
			System.out.println();
		}
	}
}
登录后复制

while循环

例1

public class WhileTest01{
	public static void main(String[] args){
//1.死循环
		while(true){
			System.out.println("死循环");
		}
//2.本质上while循环和for循环原理是相同的。
		for(初始化表达式; 布尔表达式; 更新表达式){
				循环体;
			}

		初始化表达式;
		while(布尔表达式){
				循环体;
				更新表达式;
			}
//3.例子对比
		//----for	
        for(int i = 0; i < 10; i++){
			System.out.println("i --->" + i);
		 }
        //----while
		int i = 0;
		while(i < 10){
			System.out.println("i = " + i);
			i++;
		}


//4.for和while完全可以互换,只不过就是语法格式不一样。
		for(int i = 0; i < 10; ){
			i++;
			System.out.println("i --->" + i); // 1 2 3 .. 9 10
		}

		int i = 0;
		while(i < 10){
			i++;
			System.out.println("i = " + i); // 1 2 3 .. 9 10
		}


	}
}
登录后复制

do...while循环

例1

public class Test10{
	public static void main(String[] args){
		int i = 0;
//1.
		do{
			//第一种方法
			System.out.println(i);
			i++;
			//第二种方法
			System.out.println(i++);
		}while(i<10);//0...9
//2.
		i = 0;
		do{		
			System.out.println(++i);
		}while(i<10);//1...10
		
	}
}
登录后复制

转向语句:break、continue

break语句

例1

public class BreakTest01{
	public static void main(String[] args){
		for(int i = 0; i < 10; i++){
			if(i == 5){
//1.break;语句会让离它最近的循环终止结束掉。终止的不是if,不是针对if的,而是针对离它最近的循环。
				break; 
			}
			System.out.println("i = " + i); // 0 1 2 3 4
		}

//2.这里的代码照常执行。break;的执行并不会影响这里。
		System.out.println("Hello World!");

//3.常用的终止内存的for
		for(int k = 0; k < 2; k++){ // 外层for
			for(int i = 0; i < 10; i++){ // 内层for
				if(i == 5){
					break; //这个break;语句只能终止离它最近的for,内层的for
				}
				System.out.println("i ===> " + i); 
			}
		}

		System.out.println("------------------------------------------");

//4.终止外层的for,起一个别名!
		a:for(int k = 0; k < 2; k++){ 
			b:for(int i = 0; i < 10; i++){
				if(i == 5){
					break a; //终止指定的循环。
				}
				System.out.println("i ===> " + i); 
			}
		}

		System.out.println("呵呵");

	}
}
登录后复制

continue语句

例1

public class ContinueTest01{
	public static void main(String[] args){
//1.对于break直接跳出当前循环
		for(int i = 0; i < 10; i++){
			if(i == 5){
				break;
			}
			System.out.println("i = " + i);//0、1、2、3、4
		}

		System.out.println("----------------------------");

//2.对于continue是跳出当前的一次循环,继续下一次循环
		for(int i = 0; i < 10; i++){
			if(i == 5){
				continue;
			}
			System.out.println("i = " + i); //输出结果是0-9没有5
		}

	}
}
登录后复制

3.小试牛刀

例1:计算1000以内所有不能被7整除的整数之和

public class Test01{
	public static void main(String[] args){
		int sum = 0;
		for(int i = 1;i<=1000;i++){
			if(i%7 != 0){
				sum +=i;
			}
		}
	System.out.println("sum="+sum);
	}
}
登录后复制

例2:计算 1+2-3+4-5+6-7....+100的结果

//方法1:
public class Test02{
	public static void main(String[] args){
		int sum = 1;
		for(int i=2;i<=100;i++){
			if(i%2 ==0){
				sum+=i;
			}
			else{
				sum-=i;
			}
		}
	System.out.println(sum);
	}
}
登录后复制
//方法2:定义一个flag标记,用来控制正负,一个数一个数进行处理
public class Test02{
	public static void main(String[] args){
		int sum = 1;
		int flag = 1;
		for(int i=2;i<=100;i++){
			sum +=flag*i;
			flag = -flag;
		}
	System.out.println(sum);
	}
}
登录后复制

例3:从控制台输入一个正整数,计算该数的阶乘。

public class Test03{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		System.out.print("请输入一个整数:");
		int num = s.nextInt();
		int ret = 1;
		//方法1
		for(int i=1;i<=num;i++){
			ret*=i;
		}
		//方法2
		for(int i = num;i>0;i--){
			ret*=i;
		}
	System.out.println(ret);
	}
}
登录后复制

例4:判断一个数是不是质数

//方法1:
public class Test04{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		int num = s.nextInt();
		int i = 0;
		for(i = 2;i<num;i++){
			if(num%i == 0){
			 System.out.println(num+"不是质数");
			 break;
			}
		}
		if(i == num){
			System.out.println(num+"是质数");
	}
}
登录后复制
//方法2:
public class Test04{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		int num = s.nextInt();
		int i = 0;
		boolean str = true;//也相当于一个标记
		for(i = 2;i<num;i++){
			if(num%i == 0){
			 str = false;//不是更改标记
			 break;
			}
		}
		System.out.println(num+(str ? "是":"不是")+"质数");//根据标记输出值
	}
}
登录后复制

例5:打印金字塔

    *
   ***
  *****
 *******
*********
登录后复制
public class Test05{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		int n = s.nextInt();
		for(int i=0;i<n;i++){
			for(int j=0;j<n-i-1;j++){
					System.out.print(" ");
			}
			for(int j=0;j<2*i+1;j++){
				System.out.print("*");
			}
		System.out.println();
		}
		
	}
}
登录后复制

例6:

public class Test06{
	public static void main(String[] args){
		double money = 0;
		int day = 0;
		while(true){//这也可以写成while(money<100),这样就不需要break了
			money += 2.5;
			day++;
			if(day%5 == 0){
				money -= 6;
			}
			if(money >= 100){
				break;
			}
		}
	System.out.println("需要"+day+"天存到"+money+"元钱");
	}
}
登录后复制

例7:

public class Test07{
	public static void main(String[] args){
		for(int i=2;i<=1000;i++){//1不算完数,从2开始
//注意sum的位置,写在内循环,因为每次都要重置sum为0
			int sum = 0;
//i取一半,最好的是取根号i,目前还没学习库函数,先取i/2
			for(int j=1;j<= i/2;j++){
				if(i%j == 0){
					sum += j;
				}
			}
			if(sum == i){
				System.out.println(i);
			}
		}
		
	}
}
登录后复制

例8:求一个数是几位数,并逆序打印每一位

public class Test08{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		int num = s.nextInt();
		int count = 0;
		int tmp = num;
		//求位数
		while(tmp != 0){
				count++;
				tmp /= 10;
		}
		System.out.println("位数是"+count+"位");
		//逆序打印
		tmp = num;
		while(tmp != 0){
			System.out.println(tmp%10);
			tmp /= 10;
		}
	}
}
登录后复制

例9

1 10 100 1000 
2 20 200 2000 
3 30 300 3000 
4 40 400 4000
登录后复制
public class Test09{
	public static void main(String[] args){
		for(int i=1;i<=4;i++){
			int tmp = i;
			for(int j=1;j<=4;j++){
				System.out.print(tmp+" ");
				tmp *= 10;
			}
			System.out.println();
		}
	}
}
登录后复制

10

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
登录后复制
public class Test10{
	public static void main(String[] args){
		java.util.Scanner s = new java.util.Scanner(System.in);
		int num = s.nextInt();
		x(num);
	}
	public static void x(int n){
//1.打印上半部分
		for(int i=0;i<n;i++){
			for(int j=0;j<n-i-1;j++){
				System.out.print(" ");
			}
			for(int j=0;j<2*i+1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
//2.打印下半部分
		for(int i=0;i<n-1;i++){
			for(int j=0;j<=i;j++){
				System.out.print(" ");
			}
			for(int j=0;j<2*(n-i-1)-1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}
登录后复制

11

public class Test11{
	public static void main(String[] args){
		int count = 0;
		double h = 5;
		while(h >= 0.1){
			h *= 0.3;
			count++;
	    }	
	 System.out.println(count);
	}
}
登录后复制

推荐学习:《java视频教程》

以上就是实例详解Java基础的控制语句的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是炙热故事为你收集整理的实例详解Java基础的控制语句的全部内容,希望文章能够帮你解决实例详解Java基础的控制语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部