程序显示1到100 C ++之间的所有7的倍数

时间:2016-12-28 17:34:41

标签: c++ switch-statement

如何使用switch条件语句而不是if编写此程序?

#include <iostream>
using namespace std;
int main()
{
    int i;
    for (i = 1; i <= 100; i++) {
        if ((i % 7 == 0) && (i > 0)) {
            cout << i << endl;
        }
    }

    return 0;
}

4 个答案:

答案 0 :(得分:0)

听起来你对switch语句有点不熟悉。 switch语句类似于if-else语句,除了它不是布尔参数。所以基本上它问:告诉我的价值。然后针对每个案例(可能的结果),它都会采取后续行动。

所以你想问:告诉我数字的值,模数7.如果它是零,加一个计数器。如果是1,请执行。

因此,您的代码应具有以下通用结构:

  $crypt->setData($encrypted);
  $decrypted = $crypt->decrypt();

答案 1 :(得分:0)

您要查找的代码应如下所示:

#include <iostream>  // this is for std::cin and std::cout (standard input and output)

using namespace std; // to shorten std::cout into cout

int main() {

    cout << "multiples of 7 lower than 100 are:" << endl;
    for ( int i=1 ; i<=100 ; i++ ) {
        switch ( i%7 ) {
            case 0:                // this case 0 is similar to if ( i%7 == 0 )
                cout << i << " ";
                break;
            default:
                break;
        }
    }
    cout << endl;

    return 0;
}

输出将是:

multiples of 7 lower than 100 are:
7 14 21 28 35 42 49 56 63 70 77 84 91 98

答案 2 :(得分:0)

可以根据您的情况将if语句替换为switch/case语句。但是我认为您对在何处使用if和何处switch/case语句有一些误解。我建议您像在现实生活中一样使用此声明。

如果要检查条件,请使用if。例如:

if (a > b){...}if (a == 7){...}if (functionReturnsTrue()){...}

当您有一组条件并且该组中每个元素的逻辑都不同时,可以使用switch/case语句。例如:

enum HttpMethod {
  GET,
  POST,
  PUT,
  DELETE,
};

...

void handleHttpRequest(HttpRequest req)
{
  ...
  switch(req.getHttpMethod())
  {
    case GET: handleGETRequest(req); break;
    case POST: handlePOSTRequest(req); break;
    case PUT: handlePUTRequest(req); break;
    case DELETE: handleDELETERequest(req); break;
    default: throw InvalidHttpMethod(); // in case when noone corresponds to the variable
  }
}

当然,您可以使用if语句编写相同的语句,但是switch/case语句也具有一些编译效果。当您switch类型的变量enum时,如果不检查变量的所有可能流,则可能至少会收到编译器警告。

答案 3 :(得分:-1)

你在这里:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

public partial class CreatePDFFromScratch : System.Web.UI.Page
{
    protected void btnCreatePDF_Click(object sender, EventArgs e)
    {
        // Create a Document object
          var document = new Document(iTextSharp.text.PageSize.LETTER.Rotate(), 0f, 0f, 0f, 0f);

        // Create a new PdfWrite object, writing the output to a MemoryStream
        var output = new MemoryStream();
        var writer = PdfWriter.GetInstance(document, output);

        // Open the Document for writing
        document.Open();

        // First, create our fonts..
        var titleFont = FontFactory.GetFont("Arial", 18, Font.BOLD);
        var subTitleFont = FontFactory.GetFont("Arial", 14, Font.BOLD);
        var boldTableFont = FontFactory.GetFont("Arial", 12, Font.BOLD);
        var endingMessageFont = FontFactory.GetFont("Arial", 10, Font.ITALIC);
        var bodyFont = FontFactory.GetFont("Arial", 12, Font.NORMAL);

        // Add the "Northwind Traders Receipt" title
        document.Add(new Paragraph("Northwind Traders Receipt", titleFont));

        // Now add the "Thank you for shopping at Northwind Traders. Your order details are below." message
        document.Add(new Paragraph("Thank you for shopping at Northwind Traders. Your order details are below.", bodyFont));
        document.Add(Chunk.NEWLINE);

        // Add the "Order Information" subtitle
        document.Add(new Paragraph("Order Information", subTitleFont));

        // Create the Order Information table 
        var orderInfoTable = new PdfPTable(2);
        orderInfoTable.HorizontalAlignment = 0;
        orderInfoTable.SpacingBefore = 10;
        orderInfoTable.SpacingAfter = 10;
        orderInfoTable.DefaultCell.Border = 0;

        orderInfoTable.SetWidths(new int[] { 1, 4 });
        orderInfoTable.AddCell(new Phrase("Order:", boldTableFont));
        orderInfoTable.AddCell(txtOrderID.Text);
        orderInfoTable.AddCell(new Phrase("Price:", boldTableFont));
        orderInfoTable.AddCell(Convert.ToDecimal(txtTotalPrice.Text).ToString("c"));

        document.Add(orderInfoTable);

        // Add the "Items In Your Order" subtitle
        document.Add(new Paragraph("Items In Your Order", subTitleFont));

        // Create the Order Details table
        var orderDetailsTable = new PdfPTable(3);
        orderDetailsTable.HorizontalAlignment = 0;
        orderDetailsTable.SpacingBefore = 10;
        orderDetailsTable.SpacingAfter = 35;
        orderDetailsTable.DefaultCell.Border = 0;

        orderDetailsTable.AddCell(new Phrase("Item #:", boldTableFont));
        orderDetailsTable.AddCell(new Phrase("Item Name:", boldTableFont));
        orderDetailsTable.AddCell(new Phrase("Qty:", boldTableFont));

        foreach (System.Web.UI.WebControls.ListItem item in cblItemsPurchased.Items)
            if (item.Selected)
            {
                // Each CheckBoxList item has a value of ITEMNAME|ITEM#|QTY, so we split on | and pull these values out...
                var pieces = item.Value.Split("|".ToCharArray());
                orderDetailsTable.AddCell(pieces[1]);
                orderDetailsTable.AddCell(pieces[0]);
                orderDetailsTable.AddCell(pieces[2]);
            }

        document.Add(orderDetailsTable);


        // Add ending message
        var endingMessage = new Paragraph("Thank you for your business! If you have any questions about your order, please contact us at 800-555-NORTH.", endingMessageFont);
        endingMessage.SetAlignment("Center");
        document.Add(endingMessage);

        document.Close();

        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", string.Format("inline;filename=Receipt-{0}.pdf", txtOrderID.Text));

        ///create background

        Response.BinaryWrite(output.ToArray());

        Response.Cache.SetCacheability(HttpCacheability.NoCache);

    string imageFilePath = Server.MapPath(".") + "/images/1.jpg";

    iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath);

    Document pdfDoc = new Document(iTextSharp.text.PageSize.LETTER.Rotate(), 0, 0, 0, 0);

    jpg.ScaleToFit(790, 777);

    jpg.Alignment = iTextSharp.text.Image.UNDERLYING;

    pdfDoc.Open();

    pdfDoc.NewPage();       

    pdfDoc.Add(jpg);

    pdfDoc.Close();

    Response.Write(pdfDoc);

    Response.End();


    }
}

在线编译:http://ideone.com/uq8Jue