c++ - 这里有什么问题?单位换算
问题描述
它继续进入一个持续循环,不知道为什么!这不是作业,只是练习,我正在努力学习,我想做一个单位转换器,但我不确定这是否是野兽的方式,如果你有更好的想法,请随意。
/// Write a program to promt for units
//calcultes and converts units
#include <iostream>
#include <string>
#include <cmath>
using namespace std;int main () {
string re_Run, units;
do{
int f1;
cout<<"enter force: >";
cin>>f1;
cout<<"enter units: >";
cin>>units;
string units, N, kN, lb, kip;
double conv_lb, conv_N, conv_kN;
do{
if (f1<1000 && units == "N"){
cout<<f1<<" N";
}
else if (f1>1000 && units == "kN"){
cout<<f1<<" kN";
}
else if (f1>=1000 && units == "N") {//|| x== kN)
conv_N=f1/1000;
cout<<conv_N<<" kN"; //convert from N to kN
}
else if (f1<1000 && units== "lb" ){
cout<<f1<<" lb";
}
else if (f1>1000 && units== "lb" ){//|| x==kip
conv_lb=f1/1000;
cout<<conv_lb<<" kip";
}
else if (f1>1000 && units== "kip" ){
cout<<f1<<" kip";
}
else {
cout<< "please enter (lb/kip/N/kN)\n >";
cin>>units;
}
}while (units == "N" || units == "kN" || units == "lb" || units =="kip");//(units != "N" && units != "kN" && units != "lb" && units !="kip");
cout<<"re-run?";
cin>> re_Run;
}
while (re_Run == "yes");
return 0;
}
解决方案
您重新定义units
变量,使其为空:
cin>>units; // here you read it
string units, N, kN, lb, kip; // here redefinition
units
可能不需要这一秒
而内部的while循环,因为这就是条件的设置方式:while (units == "N" || units == "kN" || units == "lb" || units =="kip");
如果units
是N
那么它循环。
推荐阅读
- javascript - 位置从固定切换到静态时不会出现反向粘性导航栏?
- c++ - 矩阵中的行和列的总和
- python - 如何去除气缸上的网格?
- javascript - 错误:如何在隐藏和显示之间切换
- react-native - React-Native:在 props.navigation.navigate("XYZScreen", myFunction()) 中传递函数
- r - 添加一列,显示前两列是否包含 0
- android - AWS Amplify 和 Android
- java - spring 如何在单个方法上为多个 @JmsListener 工作
- java - Spring Boot URL 映射
- c# - 在具有多个属性的接口中实现索引时需要帮助