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 ...
随机推荐
- SQL语句中in 与 exists的区别
SQL语句中in 与 exists的区别 SQL中EXISTS检查是否有结果,判断是否有记录,返回的是一个布尔型(true/false); IN是对结果值进行比较,判断一个字段是否存在于几个值的范围中 ...
- 在浏览器中使用ES6的模块功能 import 及 export
感谢英文原作者 Jake Archibald 的技术分享 各个浏览器对于ES6模块 import . export的支持情况 Safari 10.1. Chrome 61. Firefox 54 – ...
- LeetCode 153.Find Minimum in Rotated Sorted Array(M)(P)
题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...
- h5 移动端适配方案思考
基础概念 CSS像素(CSS pixels) 这个是浏览器使用的抽象单位,用来精确度量网页上的内容.平时经常写的width:100px;height:100px;都是与设备无关的. 设备独立像素(de ...
- 基于微信小程序的租房小程序
乐直租全国租房小程序前端 房源分钟上传,可快捷联系房东的小程序. 该小程序操作简单,布局清新,欢迎 start ~ 传送门:Github 扫码体验: pages: 首页 index 选择发布页 bef ...
- 在vue中实现锚点定位功能
场景如下: 今天早上看到需求方新提的一个需求,这是一份网上答卷,点击题数要实现滚动到对应题目的位置: 注意点:每题题目的高度是不受控制的,你可以取到想跳转的index:(我再循环题目时做了index+ ...
- 【WPF学习】第五十九章 理解控件模板
最近工作比较忙,未能及时更新内容,敬请了解!!! 对于可视化树的分析引出了几个有趣问题.例如,控件如何从逻辑树表示扩张成可视化树表示? 每个控件都有一个内置的方法,用于确定如何渲染控件(作为一组更基础 ...
- (转)C++对象的内存布局
原文地址:http://blog.csdn.net/haoel/article/details/3081328 C++ 对象的内存布局 陈皓 http://blog.csdn.net/haoel 前言 ...
- 普通索引和唯一索引如何选择(谈谈change buffer)
假设有一张市民表(本篇只需要用其中的name和id_card字段,有兴趣的可以翻看“索引”篇,里面有建表语句) 每个人都有一个唯一的身份证号,且业务代码已经保证不会重复. 由于业务需求,市民需要按身份 ...
- git提交更改都是一个作者
为什么提交到github的commit都是一个作者 参考链接 重要知识点讲解 问题如下所示 git是分布式去中心化的管理系统 ssh秘钥对生成.并把id_rsa.pub加入github.com中(这个 ...