Java 判断 循环
一、优先级
1.1 先判断5>3,true 6>4 true;然后true==true ,最后是true;
1.2 6>5,true;而true和4无法比较。所以该判断出错;
1.3 和1.2比较,可以知道该比较可以正常进行
1.4 错误,
1.5 >号优先级要高于=。所以先判断b>false ,这个无法判断。所以错误
1.6 先判断a和b true 或者false,但是true和false 没法比较大小,所以也错误。
2、浮点数判断大小
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
double a=1.0;
double b=0.2+0.2+0.2+0.2+0.2;
double c=0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println(a==c);//浮点数直接判断相等很容易出错
System.out.println(Math.abs(a-c)<1e-6);//差值和很小的一个数比较
}
}
明显看到c逼近1,但是不是1,所以直接判断a==c,false ;
浮点数比较是要用差值比较。
3、
4、
switch 遇到break才退出,否则会越过case 继续做下一个case的任务。
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a=1;
switch(a)
{
case 1:
case 2:
System.out.println("您好");
case 3:
System.out.println("晚上好");
break;
default:
System.out.println("再见");
break;
}
}
}
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int a=4;
switch(a)
{
default:
System.out.println("再见");
case 1:
case 2:
System.out.println("您好");
case 3:
System.out.println("晚上好");
break;
}
}
}
二、循环
2.1
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int num=in.nextInt();
int n=0;
while(num!=0)
{
n++;
num=num/10;
}
System.out.println(n);
}
}
输入为0时是有问题的。
package hello; import java.util.Scanner; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int num;
int n=0;
num=in.nextInt();
do
{
n++;
num=num/10;
}
while(num!=0);//分号别忘了
System.out.println(n);
}
}
2.2
package hello;
import java.util.Scanner;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int num=(int)(Math.random()*100);//生成随机数
int i=1;//次数
int n;
n=in.nextInt();
while(n!=num)
{
if(n>num)
{
System.out.println("大了");
}
else
{
System.out.println("小了");
}
n=in.nextInt();
i++;
}
System.out.println("随机数为:"+num+",猜了"+i+"次。");
}
}
三、循环控制
int 4个字节,4*8=32位。表示的最大数2^31-1,最小数-2^31。
3.1
package hello;
import java.util.Scanner;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("100以内素数有:");
int num=0;
for(int i=2;i<=100;i++)
{
int flag=0;//素数标志
for(int j=2;j<=(int)Math.sqrt(i);j++)
{
if(i%j==0)//不是素数
{
flag=1;//不是素数
break;
}
}
if(flag==0)//素数
{
num++;
System.out.println(i);
}
}
System.out.println("100以内素数个数为:"+num);
}
}
3.2
枚举方法求多种情况。
package hello;
import java.util.Scanner;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int amount = in.nextInt();//总钱数
for ( int one = 0; one <=amount; ++one )//1块钱从1到33张
{
for ( int five = 0; five <= amount/5; ++five )//5块钱 从1到6张
{
for ( int ten = 0; ten <= amount/10; ++ten )//10块钱 从1到3张
{
for ( int twenty = 0; twenty <= amount/20; ++twenty )//20块钱 1张
{
if ( one+five*5+ten*10+twenty*20 == amount )
{
System.out.println(one+"张1元,"+five+"张5元,"+ten+"张10元,"+twenty+"张20元-->"+amount);
}
}
}
}
}
}
}
多个循环跳出
3、
3.1
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=(1.0/i);
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了 } }
3.2
(1)利用标志位,正负变换
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
double sum=0.0;
int flag=1;//标志位
for(int i=1;i<=n;i++)
{
sum+=(flag*(1.0/i));
flag=-flag;
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了
in.close();//关闭扫描器
} }
(2)
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
double sum=0.0;
for(int i=1;i<=n;i++)
{
sum+=Math.pow(-1, i+1)*(1.0/i);//注意乘方怎么表示
}
System.out.println(sum);//输出原数
System.out.printf("%.2f",sum);//输出 保留两位小数;注意输出的函数变了
in.close();//关闭扫描器
} }
4、
(1)逆向递减求
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
int m=in.nextInt(); //输入两个值
int i=n;
while(n%i!=0 || m%i!=0)
{
i--;
}
System.out.println(m+"和"+n+"的最大公约数是:"+i);
in.close();//关闭扫描器
} }
(2)辗转相除求
package Hello; import java.util.Scanner; public class hello_test { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);//创建扫描器
int n=in.nextInt();
int m=in.nextInt(); //输入两个值
int a,b,y;
a=n;
b=m;
y=m;
while(a%b!=0) //辗转相除法
{
y=a%b;//余数
a=b;
b=y;
}
System.out.println(m+"和"+n+"的最大公约数是:"+b);
in.close();//关闭扫描器
} }
Java 判断 循环的更多相关文章
- 第二周:Java For循环方法简介
1.for循环的作用 Java当中循环的意思就是让Java程序重复地执行某些语句.在程序设计时,常常需要处理大量的重复动作, 采用循环结构可以降低程序书写的长度和复杂度可使复杂问题简单化,提高程序的可 ...
- [Java基础]循环结构3
[Java基础]循环结构3 break 与 continue 中断循环... /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:BreakTest.java 编写时间:2016/6 ...
- [java基础]循环结构2
[java基础]循环结构2 写了几个循环结构练习~记录一下~~ 1:99乘法表 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:GameForFor.java 编写时间:2016 ...
- [java基础]循环结构1
[java基础]循环结构1 循环结构:for循环,while循环,do_while循环在,增强型for循环 /** 文件路径:G:\JavaByHands\循环语句\ 文件名称:WhileTest.j ...
- 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路
Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...
- java集合循环删除
java集合循环删除,java list集合操作,java循环.分享牛,分享牛原创.java集合删除方法. 2.6.1.第一种方式 list.add("1"); list.add( ...
- Java学习笔记九:Java的循环跳转语句
Java的循环跳转语句 一:Java循环跳转语句之break: 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 J ...
- Java判断一个类里是否存在某个属性
Java判断一个类里是否存在某个属性 测试pojo类,比方我有个User类 @Getter @Setter public class User { private Long id; private S ...
- Java之 循环(三)
1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...
随机推荐
- grid实战之微信钱包 腾讯服务界面
网格布局简介 CSS3网格布局是让开发人员设计一个网格并将内容放在这些网格内.而不是使用浮动制作一个网格,实际上是你将一个元素声明为一个网格容器,并把元素内容置于网格中. 有一些浏览器是不支持网格布局 ...
- JZOJ 1349. 最大公约数 (Standard IO)
1349. 最大公约数 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 小菜的妹妹小诗就要读小学了!正所谓 ...
- yuchuan_Linux_C 编程之七系统IO函数
一.整体大纲 二. 系统IO函数 1. 一些概念 文件描述符 PCB C库函的IO缓冲区 1) 文件描述符 int 类型 一个进程最多 ...
- Lambda 方法引用
1.方法引用:若Lambda 体中的内容有方法已经实现了,我们可以使用“引用方法”(可以理解为方法引用是Lambda表达式的另外一种表现形式) 方法引用主要有三种语法格式: ① 对象 :: 实例方法 ...
- js原型继承题目
var F = function(){}; Object.prototype.a = function(){}; Function.prototype.b = function(){}; var f ...
- IOS手动添加的View 在代码中使用(自动布局)autoLayout
- (void)viewDidLoad { [super viewDidLoad]; UIButton *btnTest = [UIButton buttonWithType:UIButtonType ...
- SpringBoot框架——从SpringBoot看IoC容器初始化流程之方法分析
目录 一.概观Spring Boot 二.Spring Boot应用初始化 2.1 初始化入口 2.2 SpringApplication的run方法 2.3 方法分析 三.容器创建与初始化 3.1 ...
- Aircrack-ng无线审计工具破解无线密码
Aircrack-ng工具 Aircrack-ng是一个与802.11标准的无线网络分析的安全软件,主要功能有网络探测.数据包嗅探捕获.WEP和WPA/WPA2-PSK破解.Aircrack可以工作在 ...
- php制作缩略图
PHP制作缩略图 1.制作缩略图的函数 imagecopyresampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh) 说明: dest 目标画布 src 原图(要缩略的图片 ...
- Python xlsxwriter模块
1.简介: xlsxWriter支持多种excle功能:与excel完美兼容:写大文件,速度快且只占用很小的内存空间不支持读或者改现有的excel文件 2.安装: pip install xlsxwr ...